『ORACLE』SPM
Posted 九號客栈
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了『ORACLE』SPM相关的知识,希望对你有一定的参考价值。
SPM(sql plan management)的主要作用:通过管理sql执行计划,提高和稳定系统性能。
应用场合:数据库升级、不间断的系统数据改变、业务系统新模块的开发
体系结构
sql plan baseline的管理流程:
第一步:捕获执行计划(主要作用:检测执行计划和记录的改变并记录到baseline中,捕获方式有两种:1、自动捕获 2、手工load)
手工load执行计划—>from cursor cache
DECLARE my_plans PLS_INTEGER; BEGIN my_plans := DBMS_SPM.LOAD_PLANS_FROM_CURSOR_CACHE( sql_id => \'99twu5t2dn5xd\'); END; /
手工load执行计划—>from tunning set
DECLARE my_plans PLS_INTEGER; BEGIN my_plans := DBMS_SPM.LOAD_PLANS_FROM_SQLSET( sqlset_name => \'tset1\'); END; /
第二步:选择性能好的执行计划
第三步:演进(两种方式:1、通过包演进dbms_spm.evolve_sql_plan_baseline 2、手工load)
SET SERVEROUTPUT ON SET LONG 10000 DECLARE report clob; BEGIN report := DBMS_SPM.EVOLVE_SQL_PLAN_BASELINE( sql_handle => \'SYS_SQL_593bc74fca8e6738\'); DBMS_OUTPUT.PUT_LINE(report); END; /
可以通过查询select语句查询sql plan baseline
SELECT SQL_HANDLE, PLAN_NAME, ENABLED, ACCEPTED, FIXED FROM DBA_SQL_PLAN_BASELINES;
Baseline中的fixed的执行计划比no fixed的执行计划优先级高,可以通过更改baseline属性来设置fixed的属性。
以上是关于『ORACLE』SPM的主要内容,如果未能解决你的问题,请参考以下文章