大纲

【产品名称】OceanBase-cs


【产品版本】3.1


【问题描述】

问题1 :

如果期望对含有HINT的语句进行限流和固定计划,则需要TO target_stmt来指明相应的SQL。


意思是,此时:

应该使用CREATE [OR REPLACE] OUTLINE outline_name ON stmt [ TO target_stmt ]这种语法来创建大纲?

而不应该使用CREATE [OR REPLACE] OUTLINE outline_name ON 'SQLID' using 'HINTS' 这种语法来创建大纲?


问题2 :

CREATE [OR REPLACE] OUTLINE outline_name ON stmt [ TO target_stmt ];


在使用 target_stmt 时,严格要求 stmt 与 target_stmt 在去掉 hint 后完全匹配(实现中为去掉 hint 的 signature 相同)。若是在创建限流时使用 target_stmt,则同时要求 fix_param 完全匹配。


就是说,在创建限流时,严格要求 stmt 与 target_stmt 在去掉 hint 后完全匹配?且同时要求 fix_param 完全匹配?

https://open.oceanbase.com/docs/observer-cn/V3.1.1/10000000000013852

可以参考这篇文档

问题1:

一般生产环境是推荐通过sql_id的方式来绑定outline的,如果 

sql_id
 对应的 SQL 语句已经有 Hint,则创建 Outline 指定的 Hint 会覆盖原始语句中所有 Hint。

问题2:

https://open.oceanbase.com/docs/observer-cn/V3.1.2/10000000000015310

fix_param是指不能快速参数化的那些变量吗,是需要一致的

通常用sql_id的方式来创建outline,另外一种方式要求很高,我也没成功过 -_-

https://open.oceanbase.com/docs/observer-cn/V3.1.1/10000000000013852