首批通过分布式安全可靠测评,为关键业务系统打造
ALTER OUTLINE
更新时间:2026-07-15 20:56:55
描述
该语句用于添加绑定 Outline 和限流规则,仅支持修改使用 SQL_TEXT 创建的 Outline。
语法
ALTER OUTLINE outline_name ADD stmt [ TO target_stmt ];
参数解释
| 参数 | 描述 |
|---|---|
| outline_name | 指定要修改的 Outline 名称。 |
| stmt | 一般为一个带有 Hint 和原始参数的 DML 语句。 |
| TO target_stmt | 如果不指定 TO target_stmt, 则表示如果数据库接受的 SQL 参数化后与 stmt 去掉 Hint 参数化文本相同,则将该 SQL 绑定 stmt 中 Hint 生成执行计划;如果期望对含有 Hint 的语句进行固定计划,则需要 TO target_stmt 来指明原始的 SQL。 注意 在使用 target_stmt 时,严格要求 stmt 与 target_stmt 在去掉 Hint 后完全匹配。 |
示例
通过
ALTER OUTLINE来添加限流规则。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来添加执行计划。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;
注意事项
同一个
outline_name只能指定一个执行计划。如果通过CREATE OUTLINE语句指定了执行计划,则无法通过执行ALTER OUTLINE时再添加。与
CREATE OUTLINE类似,在ALTER OUTLINE时不能同时指定限流规则和执行计划。