oracle 11g以上
Oracle11g之后推出的,SPM是一种主动稳定执行计划的手段,能够保证只有被验证过的执行计划才会被启用。通过spm将数据库的执行计划迁移至另一个库进行固化,此方案仅适用于主库。
-- SPM默认开启,自动捕获默认关闭
SQL> show parameter sql_plan
NAME TYPE VALUE
------------------------------------ -------------------------------- -----------
optimizer_capture_sql_plan_baselines boolean FALSE
optimizer_use_sql_plan_baselines boolean TRUE
--查看基线视图
set lines 200
select sql_handle,plan_name,origin,enabled,accepted,sql_text from dba_sql_plan_baselines
where sql_text like '%';
--根据sql_handle查看执行计划
select * from table(dbms_xplan.display_sql_plan_baseline('SQL_4e255b34b4cf2fd9'));
spm固化执行计划一般可通过内存或者AWR方式实现
1)检查源sql是否存在内存或awr
内存
select count(*) from gv$sqlstats where sql_id='xxx';
AWR
select count(*) from dba_hist_sqltext where sql_id='xxx';