OceanBase ALTER OUTLINE

2021-06-28 11:07 更新

描述

該語(yǔ)句僅支持使用 SQL_TEXT 創(chuàng)建的 Outline,可用于添加綁定 Outline 和限流規(guī)則。

格式

ALTER OUTLINE outline_name ADD stmt [ TO target_stmt ]

參數(shù)解釋

參數(shù)

描述

outline_name

指定要?jiǎng)?chuàng)建的 Outline 名稱。

stmt

一般為一個(gè)帶有 Hint 和原始參數(shù)的 DML 語(yǔ)句。

TO target_stmt

如果不指定 TO target_stmt,則表示如果數(shù)據(jù)庫(kù)接受的 SQL 參數(shù)化后與 stmt 去掉 Hint 參數(shù)化文本相同,則將該 SQL 綁定 stmt 中 Hint 生成執(zhí)行計(jì)劃;如果期望對(duì)含有 Hint 的語(yǔ)句進(jìn)行固定計(jì)劃,則需要 TO target_stmt 來(lái)指明原始的 SQL。

注意 

在使用 target_stmt 時(shí),嚴(yán)格要求 stmt 與target_stmt 在去掉 Hint 后完全匹配。

示例

  • 通過(guò) ALTER OUTLINE 來(lái)添加限流規(guī)則。
obclient>CREATE OUTLINE ol_1 ON SELECT /*+max_concurrent(1)*/ * FROM t1 WHERE c1 =1 
           AND c2 = 1;
obclient>ALTER OUTLINE ol_1 ADD SELECT /*+max_concurrent(1)*/ * FROM t1 WHERE c1 =1 
           AND c2 = ?;
obclient>ALTER OUTLINE ol_1 ADD SELECT /*+max_concurrent(1)*/ * FROM t1 WHERE c1 =? 
           AND c2 = 1;
  • 通過(guò) ALTER OUTLINE 來(lái)添加執(zhí)行計(jì)劃。
obclient>CREATE OUTLINE ol_2 ON SELECT /*+max_concurrent(1)*/ * FROM t1,t2 
          WHERE t1.c1 = 1;
obclient>ALTER OUTLINE ol_2 ADD SELECT /*+use_nl(t2)*/ * FROM t1,t2 
          WHERE t1.c1 = 1;

注意事項(xiàng)

  • 同一個(gè) ?outline_name? 只能指定一個(gè)執(zhí)行計(jì)劃。如果通過(guò) ?CREATE OUTLINE? 語(yǔ)句指定了執(zhí)行計(jì)劃,則無(wú)法通過(guò)執(zhí)行 ?ALTER OUTLINE? 時(shí)再添加。
  • 同 ?CREATE OUTLINE? 類似,在 ?ALTER OUTLINE? 時(shí)不能同時(shí)指定限流規(guī)則和執(zhí)行計(jì)劃。
  • 執(zhí)行 ?ALTER OUTLINE? 時(shí),需要 ?outline_name? 和 ?signature? 同時(shí)匹配。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)