为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:dm7
【操作系统】:凝思6.0.80
【CPU】:
【问题描述】*:需要监控sql运行效率和卡顿原因,想查看sql的历史执行计划。
DM7不支持历史计划的持久化,所以当时或者性能不佳时没有把计划dump处理就无法追溯历史的执行计划,当前的sql缓存计划可以通过explain SQL
或者
alter session set events 'immediate trace name plndump level <cache_item>, dump_file ''/yourpath/sqlplan.txt'''
DM8在23年3季度以后支持历史计划持久化,参数ENABLE_MONITOR_PLNHIST=1
时持久化历史计划,追溯历史执行计划方法:
DBMS_XPLAN.DISPLAY_PLANHIST(HASH_VALUE);
可以从视图dba_hist_sql_plan
查到对应SQL的HASH_VALUE
SELECT sqlstr,cache_item from v$cachepln where sqlstr like ‘%SQLTEXT%’;
alter session set events ‘immediate trace name plndump level 193394995495, dump_file ‘’/tmp/sqlplan.txt’‘’
193394995495为上一步查出来的cache_item
可以通过这个方式来看看执行计划缓存