实用脚本--一键统计Oracle中最占资源的TOP 30SQL

实用脚本--一键统计Oracle中最占资源的TOP 30SQL

数据库2019-12-01 9:32:47772

今天主要分享Oracle一个简单脚本,去统计占资源的top 30 SQL,然后针对这些sql去做优化。

实用脚本

查询占资源TOP 30SQL,可根据不同列排名修改排序值,查询指定时间区间

select *
 from (select st.sql_id,
 st.PLAN_HASH_VALUE,
 ss.begin_interval_time,
 st.module,
 CPU_Time_delta CPU_Time,
 nvl(executions_delta, 0) exe_num,
 trunc(elapsed_time_delta / 1000000) exe_time,
 trunc((elapsed_time_delta /
 decode(nvl(executions_delta, 0),
 0,
 1,
 executions_delta)) / 1000000) avg_exe_time, --平均执行时间
 buffer_gets_delta lg_read,
 trunc((buffer_gets_delta /
 decode(nvl(executions_delta, 0),
 0,
 1,
 executions_delta))) avg_lg_read, --平均逻辑读
 st.disk_reads_delta wl_read,
 trunc((disk_reads_delta /
 decode(nvl(executions_delta, 0),
 0,
 1,
 executions_delta))) avg_wl_read, --平均物理读
 st.physical_read_bytes_delta / 1024 wl_readKB,
 sql_text
 from dba_hist_sqlstat st
 inner join dba_hist_snapshot ss on st.snap_id = ss.snap_id
 and st.instance_number =
 ss.instance_number
 inner join dba_hist_sqltext sx on st.sql_id = sx.sql_id
 where begin_interval_time between
 to_date('20191126 08', 'yyyymmdd hh24') and
 to_date('20191128 15', 'yyyymmdd hh24')
 order by 6 desc)
 where rownum < 30;

实用脚本 一键统计Oracle中最占资源的TOP 30SQL Oracle 数据库 第1张

文章来源:波波说运维

点击这里复制本文地址 版权说明

以上内容由网友提供,聚米学院整理发布,本站不拥有此类资源的版权,如果侵犯了你的权益,请联系邮箱(zangcp@vip.qq.com) 我们将尽快处理。

支持Ctrl+Enter提交

聚米学院 © All Rights Reserved.