[z]根据awr报告查看最慢的sql语句
http://blog.itpub.net/12679300/viewspace-2125679/
当系统运行了一段时间后,系统基本也趋于稳定了,SQL调优也变了DBA的一个主要的工作内容,很多时候都是通过查看awr报告来检查出有性能瓶颈的SQL语句,通过这个可以很清晰的看到具体运行多少时间、次数、CPU、IO的比例。
但是每次都去查看awr报告是一件很繁琐的事情,如果可以单独的查看哪些有问题的sql,就不用每次都去生成一个awr报告了。dba_hist_sqlstat这个视图记录了每次snap_id里面的sql信息,这里帮大家把整个脚本编写出来了。
点击(此处)折叠或打开
- SELECT v.SQL_TEXT,m.* FROM (select distinct snap_id,
- sql_id,
- EXECUTIONS_DELTA,
- trunc(max(ELAPSED_TIME_DELTA)
- OVER(PARTITION BY snap_id, sql_id) / 1000000,
- 0) max_elapsed,
- trunc((max(ELAPSED_TIME_DELTA)
- OVER(PARTITION BY snap_id, sql_id)) /
- (SUM(ELAPSED_TIME_DELTA) OVER(PARTITION BY snap_id)),
- 2) * 100 per_total
- from dba_hist_sqlstat t WHERE T.snap_id IN (SELECT MAX(snap_id) FROM dba_hist_sqlstat) ) M,v$sql v
- where m.sql_id=v.sql_id and m.max_elapsed>=300
这个脚本是查找m.max_elapsed>=300(这边的单位是秒),也是5分钟的时间,可以根据系统的实际情况进行定义;
可以看出sql_id值为d1ftvurv76hct运行一次,这次运行的时间为1199s,占总体消耗的36%。
【另】可以通过运行定时job执行这条sql语句,然后发送有问题的sql信息到用户的邮箱;
SELECT v.SQL_TEXT,m.* FROM (select distinct snap_id,
sql_id,
EXECUTIONS_DELTA,
trunc(max(ELAPSED_TIME_DELTA)
OVER(PARTITION BY snap_id, sql_id) / 1000000,
0) max_elapsed,
trunc((max(ELAPSED_TIME_DELTA)
OVER(PARTITION BY snap_id, sql_id)) /
(SUM(ELAPSED_TIME_DELTA) OVER(PARTITION BY snap_id)),
2) * 100 per_total
from dba_hist_sqlstat t WHERE T.snap_id IN (SELECT MAX(snap_id) FROM dba_hist_sqlstat) ) M,v$sql v
where m.sql_id=v.sql_id and m.max_elapsed>=300
[z]根据awr报告查看最慢的sql语句的更多相关文章
- 用LinqPad查看Nhibernate生成的sql语句
使用Nhibernate开发一般都要对Nhibernate生成的sql语句进行查看及分析,查看Nhibernate生成的sql语句,可以使用NHProfiler和log4net.但NHProfiler ...
- 【转载】 Sqlserver查看数据库死锁的SQL语句
在Sqlsever数据库中,有时候操作数据库过程中会进行锁表操作,在锁表操作的过程中,有时候会出现死锁的情况出现,这时候可以使用SQL语句来查询数据库死锁情况,主要通过系统数据库Master数据库来查 ...
- mysql查看正在执行的sql语句
有2个方法: 1.使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到.好处是不用设置,不会保存. -- use information_schema; ...
- 两种方式:mysql查看正在执行的sql语句
mysql查看正在执行的sql语句 2015年08月21日 17:32:59 阅读数:15398 有2个方法: 1.使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应 ...
- 查看锁表进程SQL语句
查看锁表进程SQL语句 set pagesize 999 set line180 col ORACLE_USERNAME for a18 col OS_USER_NAME for a18 col ...
- db2数据库创建索引,删除索引,查看表索引,SQL语句执行计划以及优化建议
1.建立表索引 create index 索引名 on 表名(列名,列名); 2.删除表索引 drop index 索引名 on 表名; 3.查看表索引 select * from sysibm.sy ...
- [NHibernate]查看NHibernate生成的SQL语句
最近接触到一个用Spring.Net结合NHIbernate的项目,第一次使用,有很多配置,数据操作一旦出问题,很难找到原因,那么如何查看NHibernate发送给数据库的SQL语句呢? 当然我们可以 ...
- phpmyadmin查看创建表的SQL语句
本人菜鸟 发现创建表的SQL语句还不会 直接phpmyadmin解决的 查看见表的语句除了直接到处SQL格式文件 打开查看外 就是执行语句查询 语句:show create table 表名 貌似大 ...
- MySql使用show processlist查看正在执行的Sql语句
今天上班例行的查看了下服务器的运行状况,发现服务器特卡,是mysqld这个进程占用CPU到了99%导致的. 比较好奇是那个程序在使用mysql导致cpu这么高的,通过show processlist命 ...
随机推荐
- LeetCode OJ 77. Combinations
题目 Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. For exa ...
- GIS案例学习笔记-ArcGIS整图大图出图实例教程
GIS案例学习笔记-ArcGIS整图大图出图实例教程 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 1. 通过出图比例尺(1:2000),地图范围测算图纸大小. 图 ...
- hexo发表博文
3.4创建博客文章与发布 在hexo 目录下终端命令: $ hexo new '文件名' //会在source/_posts创建一个文件名.md文件 这就可以使用markdown编辑器开始写自己的博客 ...
- boot中 Quartz注入spring管理类失败
在项目中用到了Quartz,想在里面实现业务操作发现sping类注入总是失败.后来网上查询了一下解决办法.下面把我成功解决问题的这个版本发出来,大家一起学习一下. 在quartz 会发现 job中无法 ...
- numpy 矩阵变换 reshape ravel flatten
1. 两者的区别在于返回拷贝(copy)还是返回视图(view),numpy.flatten()返回一份拷贝,对拷贝所做的修改不会影响(reflects)原始矩阵,而numpy.ravel()返回的是 ...
- Android Studio 2.3.3上引入3.0上开发的项目遇到的问题
dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) debugImplementation project( ...
- spring boot 代理(not eligible for auto-proxying)
spring 事务机制网上的案例很多,关于事务 不能回滚也有很多的类型,不同的问题有不同的处理方案,本篇博客主要介绍两种事务不能回滚的问题解决方案: 问题一: 在同一个对象中有两个方法,分别未方 ...
- hashcode() equals()
介绍一. hashCode()方法和equal()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致,那么equal()既然已经能实现对比的功能了,为什么还要hashCode()呢? ...
- jvm中堆和栈的区别
1.前言. 其实jvm能优化的空间不多,最主要的是使用的共享内存不要超过默认的2g或者自己调的参数.但了解一下还是有点意思的,建议面试时还是要看,别学笔者裸奔. 2.区别. 网上说是有5点区 ...
- Loading Assets from AssetBundles
[Loading Assets from AssetBundles] 1.LoadAsset GameObject gameObject = loadedAssetBundle.LoadAsset&l ...