Oracle store outline 固定sql执行计划

        store outline 是一些sql hint 的集合,能够使优化器产生sql 稳定的执行计划,主要应用于9i 以及之前的版本,随着10g sql profile、11g sql plan baseline、sql patch 的引入已经不推荐使用,但是作为DBA,有必要知道如何使用。

    --create store outline from sql cursor

   --9i 以及之前

    create outline  on sql_text ;

    --10g以及之后

     begin

     dbms_outln.create_outline(&sql_hash_value,&child_number);

   end;

/

      --query store outline

select * from dba_outlines

select * from dba_outline_hints


--drop store outline

drop outline outline_name;


  --example

--获取需要固定执行计划的sql游标的hash_value、child_number

select t.SQL_TEXT,t.HASH_VALUE,t.CHILD_NUMBER from v$sql  t where t.SQL_TEXT like 'select * from HR.EMPLOYEES%'

image

--根据sql hash_value、child_number 创建store outline

     begin

     dbms_outln.create_outline(3358958100,0);

   end;

/

--查看生成的store outline以及包含的hint

企业微信截图_16391223311460

image

   新生成的outline 使用状态显示unused, 设置参数启用outline

  alter system set use_stored_outlines=default;

再次查询,outline 状态已经变成使用,从sql 执行计划也能看出使用了outline

企业微信截图_16391236918730

企业微信截图_16391238207875

posted @   踏雪无痕2017  阅读(177)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示