首页 > 其他分享 >从AWR快照中固定执行计划

从AWR快照中固定执行计划

时间:2023-05-19 16:47:00浏览次数:46  
标签:快照 23 AWR 1110904408 固定 sql f18mgmxm76kdr TOTAL id

Troubleshooting/resolution
f18mgmxm76kdr –sql_id provide by user

  1. check sql plan history
col btime for a25
select 
a.sql_id,a.plan_hash_value, 
to_char(begin_interval_time,'dd-mon-yy hh24:mi') btime, 
executions_delta executions, 
round(ELAPSED_TIME_delta/1000000/greatest(executions_delta,1),1) avg_duration_sec 
from dba_hist_SQLSTAT a, dba_hist_snapshot b
where sql_id='&sql_id' 
and a.snap_id=b.snap_id
and a.instance_number=b.instance_number
order by a.snap_id desc, elapsed_time_delta desc
/


SQL_ID        PLAN_HASH_VALUE BTIME                     EXECUTIONS AVG_DURATION_SEC
------------- --------------- ------------------------- ---------- ----------------
f18mgmxm76kdr      2941319763 14-apr-23 09:00                    0           3603.2
f18mgmxm76kdr      2941319763 14-apr-23 08:00                    0           3602.2
f18mgmxm76kdr      2941319763 14-apr-23 07:00                    0           3595.3
f18mgmxm76kdr      2941319763 14-apr-23 06:00                    0           3602.4
f18mgmxm76kdr      2941319763 14-apr-23 05:00                    1           1573.7
f18mgmxm76kdr      1110904408 08-apr-23 14:00                   63               .4
f18mgmxm76kdr      1110904408 08-apr-23 10:00                    2              3.9
  1. can see the PLAN_HASH_VALUE 1110904408 is better than 2941319763
--due to PLAN_HASH_VALUE 1110904408 missing in cache, look for it in awr snapshot

SELECT SS.SNAP_ID,
 SS.INSTANCE_NUMBER,
 BEGIN_INTERVAL_TIME,
 SQL_ID,
 PLAN_HASH_VALUE,OPTIMIZER_COST,
 DISK_READS_TOTAL,
 BUFFER_GETS_TOTAL,
 ROWS_PROCESSED_TOTAL,
 CPU_TIME_TOTAL,
 ELAPSED_TIME_TOTAL,
 IOWAIT_TOTAL,
 NVL (EXECUTIONS_DELTA, 0) EXECS,
 ( ELAPSED_TIME_DELTA
 / DECODE (NVL (EXECUTIONS_DELTA, 0), 0, 1, EXECUTIONS_DELTA))
 / 1000000
 AVG_ETIME,
 ( BUFFER_GETS_DELTA
 / DECODE (NVL (BUFFER_GETS_DELTA, 0), 0, 1, EXECUTIONS_DELTA))
 AVG_LIO
FROM DBA_HIST_SQLSTAT S, DBA_HIST_SNAPSHOT SS
WHERE SQL_ID = '&sql_id'
 AND SS.SNAP_ID = S.SNAP_ID
 AND SS.INSTANCE_NUMBER = S.INSTANCE_NUMBER
 AND EXECUTIONS_DELTA > 0
ORDER BY 1, 2, 3;

   SNAP_ID INSTANCE_NUMBER BEGIN_INTERVAL_TIME                                                         SQL_ID        PLAN_HASH_VALUE OPTIMIZER_COST DISK_READS_TOTAL BUFFER_GETS_TOTAL ROWS_PROCESSED_TOTAL CPU_TIME_TOTAL ELAPSED_TIME_TOTAL IOWAIT_TOTAL      EXECS  AVG_ETIME    AVG_LIO
---------- --------------- --------------------------------------------------------------------------- ------------- --------------- -------------- ---------------- ----------------- -------------------- -------------- ------------------ ------------ ---------- ---------- ----------
     48237               1 08-APR-23 10.00.59.837 AM                                                   f18mgmxm76kdr      1110904408     5027004749            12552             46764                53820        7256735            7712472       609076          2   3.856236      23382
     48241               1 08-APR-23 02.00.08.692 PM                                                   f18mgmxm76kdr      1110904408     5027004749            22805            451452               102950       31973545           32636517       957780         63 .395619762 6423.61905
     48376               1 14-APR-23 05.00.05.603 AM                                                   f18mgmxm76kdr      2941319763     3982193851             6721          31529396                    0     1572852978         1573656049       778207          1 1573.65605   31529396
  1. create STS
BEGIN
 DBMS_SQLTUNE.CREATE_SQLSET(
 sqlset_name => 'STS_1110904408',
 description => 'SQL Tuning Set for loading plan into SQL Plan Baseline');
END;
/

4.load STS from snap_id (based on step 3)

DECLARE
 cur sys_refcursor;
BEGIN
 OPEN cur FOR
 SELECT VALUE(P)
 FROM TABLE(
 dbms_sqltune.select_workload_repository(begin_snap=>48240, end_snap=>48242,basic_filter=>'sql_id =''f18mgmxm76kdr''',attribute_list=>'ALL')) p;
 DBMS_SQLTUNE.LOAD_SQLSET( sqlset_name=> 'STS_1110904408', populate_cursor=>cur);
 CLOSE cur;
END;
/
  1. check STS loading status
SELECT
 first_load_time ,
 executions as execs ,
 parsing_schema_name ,
 elapsed_time / 1000000 as elapsed_time_secs ,
 cpu_time / 1000000 as cpu_time_secs ,
 buffer_gets ,
 disk_reads ,
 direct_writes ,
 rows_processed ,
 fetches ,
 optimizer_cost ,
 sql_plan ,
 plan_hash_value ,
 sql_id ,
 sql_text
 FROM TABLE(DBMS_SQLTUNE.SELECT_SQLSET(sqlset_name => 'STS_1110904408')
 );
  1. fix sql plan from AWR snapshop(STS)
DECLARE
my_plans pls_integer;
BEGIN
 my_plans := DBMS_SPM.LOAD_PLANS_FROM_SQLSET(
 sqlset_name => 'STS_1110904408',
 basic_filter=>'plan_hash_value = ''1110904408''',
 fixed => 'YES', enabled => 'YES' 
 );
END;
/
  1. verify fixed sql plan
select sql_handle, substr(sql_text,1, 100) text, created, enabled, accepted, fixed from DBA_SQL_PLAN_BASELINES;

8.purge bad plan from shared_pool

select ADDRESS,HASH_VALUE from v$sqlarea where SQL_ID='&sql_id';

exec DBMS_SHARED_POOL.PURGE ('&ADDRESS,&HASH_VALUE ','C');

标签:快照,23,AWR,1110904408,固定,sql,f18mgmxm76kdr,TOTAL,id
From: https://www.cnblogs.com/sage914/p/17415664.html

相关文章

  • Echarts X轴 强制显示所有标签 && 每行固定字数并换行显示
     效果图如下: 直接上代码:axisLabel:{//轴文字interval:0,//强制显示完整//每行显示4个文字换行formatter:function(value){varret="";//拼接加\n返回的类目项varmaxLen......
  • Oracle数据库生成AWR日报的方法
    1.打开pl/sql命令行2.打开awrrpt.sql文件 3.选择文件类型4.输入天数 5.选择开始时间 6.选择结束时间7.输入日报名字,一般为了方便,我输入的是月份日期 8.打开awr日报所在位置,并修改格式为html  ......
  • 视频汇聚融合平台EasyCVR视频快照增加设备和通道信息的实现过程分享
    EasyCVR视频融合平台基于云边端协同架构,具有强大的数据接入、处理及分发能力。平台可支持多协议、多类型的前端设备接入,包括:IPC、NVR、视频编码器、视频平台、车载终端、车机设备、警用移动执法仪、手持智能移动终端、无人机等;支持采用设备树对设备进行分组、分级管理,支持设备状态......
  • 视频汇聚融合平台EasyCVR视频快照增加设备和通道信息的实现过程分享
    EasyCVR视频融合平台基于云边端协同架构,具有强大的数据接入、处理及分发能力。平台可支持多协议、多类型的前端设备接入,包括:IPC、NVR、视频编码器、视频平台、车载终端、车机设备、警用移动执法仪、手持智能移动终端、无人机等;支持采用设备树对设备进行分组、分级管理,支持设备状态......
  • app直播源码,css宽度不固定,水平居中
    app直播源码,css宽度不固定,水平居中1.相对定位:  #box{position:relative;left:50%;float:left;} #inner{position:relative;left:-50%;} ​需考虑浮动带来的问题 2.利用diplay:table来解决: #box{display:table;margin:0auto}/*不支持ie6,ie7*/  3.CSS3fl......
  • 12-2 逻辑卷扩容及快照管理
    一、扩容ext4文件[root@centos8~]#vgdisplay查看逻辑卷空间[root@centos8~]#lvextend-l+50%free/dev/vg0/mysql增加%50[root@centos8~]#lvdisplay查看是否增加了内存[root@centos8~]#vim/etc/fstab挂在配置文件路径12UUID=43f3ebf4-9fa1-42a4-9cb7-5......
  • 几条固定数据需要建表?
    在开发中,可能会遇到这样的业务场景:已知有几条固定的数据,需要实现【展示&修改】功能。建表?杀鸡用牛刀缓存?服务器重启,数据就失效了从领域角度而言,这种数据可以视为配置(config),使用者可以选择自己想要的某种配置,同时又可以对这些配置做出一定调整(修改)。谈到配置,不难想出......
  • ant-design-vue中,如何将固定头部(layout-header)中的menu-item元素移动到右边
    官方的文档显示的都是左边,提供的API也没有移动到右边的功能 在ant-design-vue的群里面问了,然后又去各种问。有人建议可以用row和col来解决,也是可以,但是为了保持格式完整性,最好是在menu中去修改,不然,按键和其他按键不一样,很麻烦。去ant-design(ant-design-vue算是ant-design的分......
  • 实现导航栏固定,滚动条下滑一定距离后消失,上划继续出现
    实现导航栏固定,滚动条下滑一定距离后消失,上划继续出现constshowHeader=ref(true);//获取滚动条的高度constgetScrollTop=()=>{letscrollTop=document.documentElement.scrollTop||window.pageYOffset||document.body.scrollTop;returnscr......
  • EasyPlayer播放H.265视频,播放器快照时间显示的问题优化
    我们的EasyPlayer流媒体播放器可支持H.264与H.265,能支持RTSP、RTMP、HLS、FLV、WebRTC等格式的视频流播放。TSINGSEE的视频平台均集成了EasyPlayer的播放器,实现了无插件网页直播,性能稳定。有用户反馈,EasyPlayer在播放H.265视频的通道时,播放器快照时间显示的是时间戳,并不是日期。......