查找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 相关文章推荐
javascript实现的基于金山词霸网络翻译的代码
Jan 15 Javascript
解决jquery插件冲突的问题
Jan 23 Javascript
实现checkbox全选、反选、取消JavaScript小脚本异常
Apr 10 Javascript
javascript实现window.print()去除页眉页脚
Dec 30 Javascript
jQuery源码解读之removeAttr()方法分析
Feb 20 Javascript
常用jQuery代码分享
Jul 14 Javascript
JavaScript闭包的简单应用
Sep 01 Javascript
Vue render深入开发讲解
Apr 13 Javascript
详解vue父子组件关于模态框状态的绑定方案
Jun 05 Javascript
基于JQuery实现页面定时弹出广告
May 08 jQuery
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
May 15 Javascript
原生js+css实现tab切换功能
Sep 17 Javascript
利用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
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
PHP预定义超全局数组变量小结
2018/08/20 PHP
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
JS实现的打字机效果完整实例
2016/06/20 Javascript
webuploader模态框ueditor显示问题解决方法
2016/12/27 Javascript
从零学习node.js之mysql数据库的操作(五)
2017/02/24 Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
nodejs require js文件入口,在package.json中指定默认入口main方法
2018/10/10 NodeJs
简述vue路由打开一个新的窗口的方法
2018/11/29 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
python魔法方法-属性转换和类的表示详解
2016/07/22 Python
docker django无法访问redis容器的解决方法
2019/08/21 Python
pytorch方法测试详解——归一化(BatchNorm2d)
2020/01/15 Python
python 3.8.3 安装配置图文教程
2020/05/21 Python
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
见习期自我鉴定
2014/01/31 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
运动会通讯稿500字
2014/02/20 职场文书
精彩的广告词
2014/03/19 职场文书
公开服务承诺制度
2014/03/26 职场文书
村居抓节水倡议书
2014/05/19 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
长城导游词400字
2015/01/30 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
硕士学位申请报告
2015/05/15 职场文书
2015年物流客服工作总结
2015/07/27 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
导游词之云南-元阳梯田
2019/10/08 职场文书
vue如何批量引入组件、注册和使用详解
2021/05/12 Vue.js
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis