创建outline后 通过explain查看计划中没有使用hint

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】社区4.3.5
【问题描述】创建了format outline 通过explain 看好像没有生效 并行度是1 麻烦老师帮忙给看一下


两条sql大小写不一致,你改成大写试试

老师 我使用大写好像也不行,在创建outline的时候使用的是小写。

删掉重建一下试试呢,这种确实没遇到过。
这边也测试下看看

老师 我这边测试的还是不行
我的环境是有备库 做过计划内切换 这个是在切换后的主库上执行的 不知道跟这个有没有关系

绑定变量看看试试呢

你理解的有偏差,如需要确定outlline是否生效:

例子:

  • 使用 EXPLAIN EXTENDED 查看绑定的 Outline 是否生效:
CREATE OUTLINE otl_idx_c2
ON SELECT/*+ index(t1 idx_c2)*/ * FROM t1 WHERE c2 = 1;
EXPLAIN EXTENDED SELECT/*+ index(t1 idx_c2)*/ * FROM t1 WHERE c2 = 1;
  • 输出中会包含 OUTLINE_DATA,用于验证计划是否符合预期。

验证 outline 是否生效,通过实际运行 sql 后查看 sql 实际执行计划。