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
                    
                





                
            
        
浙公网安备 33010602011771号