如何根据awr报告查看最慢的sql语句
系统运行一段时间后,系统已经基本稳定。 SQL调优也成为了DBA的一项主要工作内容。很多时候,性能是通过查看awr报告来检查的。通过这个可以清楚的看到瓶颈的SQL语句,具体的运行时间、次数、CPU、IO比例。
但是每次都要查看awr报告,非常麻烦。如果可以单独检查有问题的SQL,就不用每次都生成。报告了 awr。视图dba_hist_sqlstat记录了每个snap_id中的SQL信息。在这里我将帮助您编写整个脚本。
单击(此处)折叠或打开
SELECT v.SQL_TEXT,m.* FROM (选择不同的 snap_id,
sql_id,
EXECUTIONS_DELTA,
trunc( max(ELAPSED_TIME_DELTA)
0) max_elapsed,
OVER(PARTITION BY snap_ id, sql_id)) /
(SUM (ELAPSED_TIME_DELTA) Over (分区by Snap_id)),
2) * 100 PER_TOTAL
< p> from dba_hist_sqlstat t WHERE T.snap_id IN (SELECT MAX(snap_id) FROM dba_hist_sqlstat) ) M,v$ sql v其中 m.sql_id=v.sql_id 且 m.max_elapsed>=300
此脚本搜索 m.max_elapsed>=300(此处的单位是秒),也是 5 分钟。可根据系统实际情况进行。定义;
可以看出sql_id值为d1ftvurv76hct,运行一次。本次运行时间为1199s,占总消耗的36%。
[另一个]你可以执行这个sql状态通过运行计划作业来解决问题,然后将有问题的sql信息发送到用户的邮箱中;
感谢您仔细阅读本文。希望小编分享的《如何根据AWR报告查看最慢的SQL语句》这篇文章对大家有所帮助。也希望大家多多支持。关注行业资讯频道,更多相关知识等您学习!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何根据awr报告查看最慢的sql语句