来轩
#1
创建Outline后,如何判断Outline是否生效?
A、执行去掉Hint的SOL,从系统视图GV$OB_PLAN_CACHE_PLAN_STATS中查看OUTLINE_ID,如果符合预期则说明Outline已经生效
B、对去掉Hint的SOL执行EXPLAIN,如果显示的执行计划符合预期,说明Outline已经生效
C、执行去掉Hint的SQL,从系统视图GVSOB_PLAN_CACHE_PLAN_EXPLAIN看本次执行所使用的执行计划,如果符合预期则说明Outline已经生效
D、系统视图DBA_OB_OUTLINES中可以查到该Outline,说明Outline已经生效
3 个赞
D为啥错了。创建 Outline 后,可以通过系统视图 DBA_OB_OUTLINES 或 DBA_OB_FORMAT_OUTLINES 确认是否创建成功。
来轩
#7
DBA_OB_OUTLINES 或 DBA_OB_FORMAT_OUTLINES只能说明创建的语句执行没问题,是否生效需要根据这个两个视图中产生的OUTLINE_ID 去GV$OB_PLAN_CACHE_PLAN_STATS 查询,如果能够查询到数据说明生效了,如果查询结果是-1说明创建的outline没有生效