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%'
--根据sql hash_value、child_number 创建store outline
begin
dbms_outln.create_outline(3358958100,0);
end;
/
--查看生成的store outline以及包含的hint
新生成的outline 使用状态显示unused, 设置参数启用outline
alter system set use_stored_outlines=default;
再次查询,outline 状态已经变成使用,从sql 执行计划也能看出使用了outline
本文来自博客园,作者:踏雪无痕2017,转载请注明原文链接:https://www.cnblogs.com/oradba/p/15672645.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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)