写点什么

【YashanDB 知识库】outline 固化执行计划

作者:YashanDB
  • 2024-06-05
    广东
  • 本文字数:551 字

    阅读完需:约 2 分钟

【问题分类】性能优化,功能使用

【关键字】outline

【问题描述】防止 SQL 执行计划突变,用 outline 固化执行计划

【问题原因分析】防止 SQL 执行计划突变,用 outline 固化执行计划

【解决/规避方法】

SQL
--创建测试outline:ol_ab/ol_ba
conn sales/sales
CREATE OUTLINE ol_ab FOR CATEGORY ctgy_ab ON
SELECT /*+ leading(a,b) */ a.area_name, b.branch_name
FROM area a, branches b
WHERE a.area_no = b.area_no
AND b.branch_no LIKE '01%'
AND a.area_no LIKE '01';

CREATE OUTLINE ol_ba FOR CATEGORY ctgy_ab ON
SELECT a.area_name, b.branch_name
FROM area a, branches b
WHERE a.area_no = b.area_no
AND b.branch_no LIKE '01%'
AND a.area_no LIKE '01';

--修改基表,交换outline
conn / as sysdba
UPDATE OL$HINTS SET OL_NAME=DECODE(OL_NAME,'OL_AB','OL_BA','OL_BA','OL_AB') WHERE OL_NAME IN ('OL_AB','OL_BA');

--打开outline开关
ALTER SESSION SET USE_STORED_OUTLINES=ctgy_ab;

--验证应用SQL执行计划
conn sales/sales
explain SELECT a.area_name, b.branch_name
FROM area a, branches b
WHERE a.area_no = b.area_no
AND b.branch_no LIKE '01%'
AND a.area_no LIKE '01';
复制代码

【影响范围】严重降低 SQL 执行效率

【修复版本】22.2

用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
【YashanDB知识库】outline固化执行计划_yashandb_YashanDB_InfoQ写作社区