查找Oracle高消耗语句的方法

2014-03-22 38

在运行下面的脚本之前需要先用生成AWR报告的SQL(程序脚本一般保存在$ORACLE_HOME下的rdbms/admin中,名称为awrrpt.sql,需要输入生成AWR报告的天数范围)找到开始和结束的snapshot编号:begin_snap和end_snap。

<span style="font-size:18px;">set line 1000 
set linesize 200 
set pagesize 2000 
set long 999999 
set echo on 
set markup html on 
select res.* 
from (select to_char(d.end_interval_time,'yyyy-mm-dd'), 
a.PARSING_SCHEMA_NAME, 
c.MODULE, 
a.sql_id, 
a.execs as 执行次数, 
ROUND(a.cpu_times / a.execs, 2) as 单次执行时间, 
a.cpu_times as cpu消耗时间, 
ROUND(a.cpu_times / b.sum_time * 100, 2) as 消耗cpu百分比, 
a.buffer_gets as 逻辑读, 
ROUND(a.buffer_gets / b.sum_buffer * 100, 2) as 逻辑读百分比, 
a.disk_read as 物理读, 
ROUND(a.disk_read / b.sum_disk * 100, 2) as 物理读百分比, 
c.sql_fulltext 
from (select PARSING_SCHEMA_NAME, 
sql_id, 
sum(EXECUTIONS_DELTA) AS execs, 
round(sum(CPU_TIME_DELTA) / 1000000, 2) AS cpu_times, 
round(sum(ELAPSED_TIME_DELTA) / 1000000, 2) AS elapsed_time, 
sum(BUFFER_GETS_DELTA) AS buffer_gets, 
sum(DISK_READS_DELTA) AS disk_read 
from sys.WRH$_SQLSTAT wr, gv$instance i 
where SNAP_ID <= &end_snap 
and snap_id >= &begin_snap 
and wr.INSTANCE_NUMBER = i.INSTANCE_NUMBER 
and i.instance_number = &instance_number 
group by PARSING_SCHEMA_NAME, wr.INSTANCE_NUMBER, sql_id) a, 
(SELECT round(SUM(CPU_TIME_DELTA) / 1000000, 2) sum_time, 
SUM(BUFFER_GETS_DELTA) sum_buffer, 
sum(DISK_READS_DELTA) sum_disk 
FROM sys.WRH$_SQLSTAT wr, gv$instance i 
where SNAP_ID <= &end_snap 
and snap_id >= &begin_snap 
and wr.INSTANCE_NUMBER = i.INSTANCE_NUMBER 
and i.instance_number = &instance_number) b, 
v$sqlarea c, 
dba_hist_snapshot d 
where a.execs > 0 
and a.sql_id = c.sql_id 
and a.PARSING_SCHEMA_NAME <> 'SYS' 
and d.snap_id = &end_snap 
order by cpu消耗时间 desc) res 
where rownum < 41; 
exit</span>

将脚本输出内容保存到记事本txt中,并将记事本的后缀名更改为.html,这样就可以输出以下的网页内容:
查找Oracle高消耗语句的方法
展开阅读全文

更多Javascript文章

jquery监控数据是否变化(修正版)
Apr 12 40
网页前端优化之滚动延时加载图片示例
Jul 13 42
设置checkbox为只读(readOnly)的两种方式
Oct 11 34
jQuery插件pagination实现无刷新分页
May 21 55
vue中阻止click事件冒泡,防止触发另一个事件的方法
Feb 08 52
angular将html代码输出为内容的实例
Sep 30 32
微信小程序语音同步智能识别的实现案例代码解析
May 29 40
手机访问当前页面