OceanBase OUTLINE

2021-06-10 10:18 更新

描述

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

格式

ALTER OUTLINE outline_name ADD stmt [ TO target_stmt ]

參數(shù)解釋

參數(shù)

描述

outline_name

指定要創(chuàng)建的 OUTLINE 名稱。

stmt

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

TO target_stmt

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

注意 

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

示例

  • 通過 ALTER OUTLINE 來添加限流規(guī)則。
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; 
  • 通過 ALTER OUTLINE 來添加執(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ì)劃。如果通過 ?CREATE OUTLINE? 語句指定了執(zhí)行計(jì)劃,則無法通過執(zhí)行 ?ALTER OUTLINE? 時(shí)再添加。
  • 同 ?CREATE OUTLINE? 類似,在 ?ALTER OUTLINE? 時(shí)不能同時(shí)指定限流規(guī)則和執(zhí)行計(jì)劃。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號