Outline 绑定执行计划,改动哪项仍可正常匹配

Outline 绑定执行计划,改动哪项仍可正常匹配
A. 条件数值
B. 运算公式
C. 字段顺序
D. 表名写法

2 个赞
A 条件数值 :white_check_mark: 正确 Outline 支持对 SQL 进行参数化匹配,WHERE 条件中的常量值差异(如 id=1 和 id=2)不影响命中,这是 Outline 最常见的使用场景。
B 运算公式 :x: 错误 表达式结构变化(如 id+1=3 和 id=2)会被视为不同 SQL,无法命中。
C 字段顺序 :x: 错误 SELECT 中的字段顺序变化会改变 SQL 结构,Outline 无法匹配。
D 表名写法 :x: 错误 表名的大小写差异会被视为不同 SQL,无法命中。

正确答案是 A. 条件数值

Outline(执行计划绑定)的匹配规则,是基于参数化后的 SQL 文本进行比对的:
当使用绑定变量或常量参数时,条件中的数值会被归一化处理,改变数值本身(如WHERE id=1改为WHERE id=2)不会影响 Outline 的匹配,只要 SQL 的结构、语法保持一致即可。
而运算公式、字段顺序、表名写法的改变,会直接修改 SQL 的结构文本,导致 Outline 无法匹配。

1 个赞