查找Oracle高消耗语句的方法


Posted in Javascript onMarch 22, 2014

在运行下面的脚本之前需要先用生成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 相关文章推荐
JS获取随机数函数可自定义最小值最大值
May 08 Javascript
jquery增加和删除元素的方法
Jan 14 Javascript
JS监听微信、支付宝等移动app及浏览器的返回、后退、上一页按钮的事件方法
Aug 05 Javascript
js实现可旋转的立方体模型
Oct 16 Javascript
jQuery实现点击任意位置弹出层外关闭弹出层效果
Oct 19 Javascript
100行代码理解和分析vue2.0响应式架构
Mar 09 Javascript
windows下更新npm和node的方法
Nov 30 Javascript
微信小程序实现长按删除图片的示例
May 18 Javascript
js获取对象,数组所有属性键值(key)和对应值(value)的方法示例
Jun 19 Javascript
使用kbone解决Vue项目同时支持小程序问题
Nov 08 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
May 28 Javascript
详解Vue的七种传值方式
Feb 08 Vue.js
利用JavaScript检测CPU使用率自己写的
Mar 22 #Javascript
JSONP跨域的原理解析及其实现介绍
Mar 22 #Javascript
一个网页标题title的闪动提示效果实现思路
Mar 22 #Javascript
js获得网页背景色和字体色的方法
Mar 21 #Javascript
页面装载js及性能分析方法介绍
Mar 21 #Javascript
Js冒泡事件详解及阻止示例
Mar 21 #Javascript
js调用浏览器打印模块实现点击按钮触发自定义函数
Mar 21 #Javascript
You might like
在PHP中养成7个面向对象的好习惯
2010/07/17 PHP
eAccelerator的安装与使用详解
2013/06/13 PHP
解析php防止form重复提交的方法
2013/07/01 PHP
php中创建和调用webservice接口示例
2014/07/25 PHP
Python中使用django form表单验证的方法
2017/01/16 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHP随机数函数rand()与mt_rand()的讲解
2019/03/25 PHP
JQuery 构建客户/服务分离的链接模型中Table中的排序分析
2010/01/22 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
JS修改iframe页面背景颜色的方法
2015/04/01 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
JS中IP地址与整数相互转换的实现代码
2017/04/10 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
微信小程序实现导航栏选项卡效果
2020/06/19 Javascript
vue .sync修饰符的使用详解
2018/06/15 Javascript
详解Vue 数据更新了但页面没有更新的 7 种情况汇总及延伸总结
2020/05/28 Javascript
[02:15]2014DOTA2国际邀请赛 专访LGD.lin小兔子是大腿
2014/07/14 DOTA
Python3基础之条件与循环控制实例解析
2014/08/13 Python
pandas DataFrame数据转为list的方法
2018/04/11 Python
Python3处理HTTP请求的实例
2018/05/10 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
在PyCharm下使用 ipython 交互式编程的方法
2019/01/17 Python
Python删除n行后的其他行方法
2019/01/28 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
五分钟带你搞懂python 迭代器与生成器
2020/08/30 Python
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
自我评价是什么
2014/01/04 职场文书
信息总监管理职责范本
2014/03/08 职场文书
2014年五四青年节演讲比赛方案
2014/04/22 职场文书
教师竞聘上岗演讲稿
2014/09/03 职场文书
机关作风建设心得体会
2014/10/22 职场文书
专业技术职务聘任证明
2015/03/02 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
Vue全家桶入门基础教程
2021/05/14 Vue.js
在项目中使用redis做缓存的一些思路
2021/09/14 Redis