Oracle AWR中常用到的几个SQL语句

分享几个AWR脚本中查询资源占有的SQL,更改想要的snapid就可以查相应时间段的数据库性能信息了


按执行时间查sql

SELECT s.Sql_Id
      ,Elapsed_Time / 1000000 Elapsed_Time --执行时间查sql        
      ,Cpu_Time / 1000000 Cpu_Time --cpu时间       
      ,Iowait_Time / 1000000 Iowait_Time --I/O时间       
      ,Gets
      ,Reads
      ,Rws
      ,Clwait_Time / 1000000 Clwait_Time
      ,Execs --按执行次数        
      ,St.Sql_Text Sqt
      ,Elapsed_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Elpe--每次执行的平均时间
  FROM (SELECT *
          FROM (SELECT Sql_Id
                      ,SUM(Executions_Delta) Execs--执行次数
                      ,SUM(Buffer_Gets_Delta) Gets--逻辑读
                      ,SUM(Disk_Reads_Delta) Reads
                      ,SUM(Rows_Processed_Delta) Rws
                      ,SUM(Cpu_Time_Delta) Cpu_Time--cpu时间  
                      ,SUM(Elapsed_Time_Delta) Elapsed_Time--执行时间查sql  
                      ,SUM(Clwait_Delta) Clwait_Time
                      ,SUM(Iowait_Delta) Iowait_Time--I/O时间   
                  FROM Dba_Hist_Sqlstat
                /*WHERE Snap_Id > 52370                      
                AND Snap_Id <= 52373*/
                 GROUP BY Sql_Id
                 ORDER BY SUM(Elapsed_Time_Delta) DESC)
         WHERE Rownum <= 20) s
      ,Dba_Hist_Sqltext St
 WHERE St.Sql_Id = s.Sql_Id
 ORDER BY Elapsed_Time DESC
         ,Sql_Id;

一天内的执行情况查询

SELECT s.Sql_Id
      ,Elapsed_Time / 1000000 Elapsed_Time --执行时间查sql        
      ,Cpu_Time / 1000000 Cpu_Time --cpu时间       
      ,Iowait_Time / 1000000 Iowait_Time --I/O时间       
      ,Gets
      ,Reads
      ,Rws
      ,Clwait_Time / 1000000 Clwait_Time
      ,Execs --按执行次数        
      ,St.Sql_Text Sqt
      ,Elapsed_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Elpe --每次执行的平均时间
  FROM (SELECT *
          FROM (SELECT Dhs.Sql_Id
                      ,SUM(Dhs.Executions_Delta) Execs --执行次数
                      ,SUM(Dhs.Buffer_Gets_Delta) Gets --逻辑读
                      ,SUM(Dhs.Disk_Reads_Delta) Reads
                      ,SUM(Dhs.Rows_Processed_Delta) Rws
                      ,SUM(Dhs.Cpu_Time_Delta) Cpu_Time --cpu时间  
                      ,SUM(Dhs.Elapsed_Time_Delta) Elapsed_Time --执行时间查sql  
                      ,SUM(Dhs.Clwait_Delta) Clwait_Time
                      ,SUM(Dhs.Iowait_Delta) Iowait_Time --I/O时间   
                  FROM Dba_Hist_Sqlstat  Dhs
                      ,Dba_Hist_Snapshot Dhh
                 WHERE 1 = 1
                   AND Dhs.Snap_Id = Dhh.Snap_Id
                   --AND Extract(Hour FROM p.End_Interval_Time) BETWEEN 8 AND 16 --每天8点到16点
                   AND Dhh.End_Interval_Time BETWEEN SYSDATE - 1 AND SYSDATE
                /*and Snap_Id > 52370                      
                AND Snap_Id <= 52373*/
                 GROUP BY Sql_Id
                 ORDER BY SUM(Dhs.Elapsed_Time_Delta) DESC)
         WHERE Rownum <= 20) s
      ,Dba_Hist_Sqltext St
 WHERE St.Sql_Id = s.Sql_Id
 ORDER BY Elapsed_Time DESC
         ,Sql_Id;

按CPU

SELECT s.Sql_Id
      ,Cpu_Time / 1000000 Cpu_Time
      ,Elapsed_Time / 1000000 Elapsed_Time
      ,Iowait_Time / 1000000 Iowait_Time
      ,Gets
      ,Reads
      ,Rws
      ,Clwait_Time / 1000000 Clwait_Time
      ,Execs
      ,Substr(Regexp_Replace(St.Sql_Text, '(\s)+', ' '), 1, 50) Sqt
      ,'             ' Nl
      ,Cpu_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Cppe
      ,Elapsed_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Elpe
      ,Iowait_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Iope
      ,Gets / Decode(Execs, 0, NULL, Execs) Bpe
      ,Reads / Decode(Execs, 0, NULL, Execs) Rpe
      ,Rws / Decode(Execs, 0, NULL, Execs) Rwpe
      ,Clwait_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Clpe
      ,'          ' Ep
      ,St.Sql_Text Sqtn
  FROM (SELECT *
          FROM (SELECT Sql_Id
                      ,SUM(Executions_Delta) Execs
                      ,SUM(Buffer_Gets_Delta) Gets
                      ,SUM(Disk_Reads_Delta) Reads
                      ,SUM(Rows_Processed_Delta) Rws
                      ,SUM(Cpu_Time_Delta) Cpu_Time
                      ,SUM(Elapsed_Time_Delta) Elapsed_Time
                      ,SUM(Iowait_Delta) Iowait_Time
                      ,SUM(Clwait_Delta) Clwait_Time
                  FROM Dba_Hist_Sqlstat
                /*WHERE Snap_Id > 52370                      
                AND Snap_Id <= 52373*/
                 GROUP BY Sql_Id
                 ORDER BY SUM(Cpu_Time_Delta) DESC)
         WHERE Rownum <= 10) s
      ,Dba_Hist_Sqltext St
 WHERE St.Sql_Id = s.Sql_Id
 ORDER BY Cpu_Time DESC
         ,Sql_Id;

按I/O排序

SELECT s.Sql_Id
      ,Iowait_Time / 1000000 Iowait_Time
      ,Elapsed_Time / 1000000 Elapsed_Time
      ,Cpu_Time / 1000000 Cpu_Time
      ,Gets
      ,Reads
      ,Rws
      ,Clwait_Time / 1000000 Clwait_Time
      ,Execs
      ,Substr(Regexp_Replace(St.Sql_Text, '(\s)+', ' '), 1, 50) Sqt
      ,'             ' Nl
      ,Iowait_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Iope
      ,Elapsed_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Elpe
      ,Cpu_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Cppe
      ,Gets / Decode(Execs, 0, NULL, Execs) Bpe
      ,Reads / Decode(Execs, 0, NULL, Execs) Rpe
      ,Rws / Decode(Execs, 0, NULL, Execs) Rwpe
      ,Clwait_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Clpe
      ,'          ' Ep
      ,Substr(Regexp_Replace(St.Sql_Text, '(\s)+', ' '), 51, 50) Sqtn
  FROM (SELECT *
          FROM (SELECT Sql_Id
                      ,SUM(Executions_Delta) Execs
                      ,SUM(Buffer_Gets_Delta) Gets
                      ,SUM(Disk_Reads_Delta) Reads
                      ,SUM(Rows_Processed_Delta) Rws
                      ,SUM(Cpu_Time_Delta) Cpu_Time
                      ,SUM(Elapsed_Time_Delta) Elapsed_Time
                      ,SUM(Iowait_Delta) Iowait_Time
                      ,SUM(Clwait_Delta) Clwait_Time
                  FROM Dba_Hist_Sqlstat
                /*WHERE Snap_Id > 52370                      
                AND Snap_Id <= 52373*/
                 GROUP BY Sql_Id
                 ORDER BY SUM(Iowait_Delta) DESC)
         WHERE Rownum <= 20) s
      ,Dba_Hist_Sqltext St
 WHERE St.Sql_Id = s.Sql_Id
 ORDER BY Iowait_Time DESC
         ,Reads       DESC;

按gets

SELECT s.Sql_Id
      ,Gets
      ,Reads
      ,Elapsed_Time / 1000000 Elapsed_Time
      ,Cpu_Time / 1000000 Cpu_Time
      ,Iowait_Time / 1000000 Iowait_Time
      ,Rws
      ,Clwait_Time / 1000000 Clwait_Time
      ,Execs
      ,Substr(Regexp_Replace(St.Sql_Text, '(\s)+', ' '), 1, 50) Sqt
      ,'             ' Nl
      ,Gets / Decode(Execs, 0, NULL, Execs) Bpe
      ,Reads / Decode(Execs, 0, NULL, Execs) Rpe
      ,Elapsed_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Elpe
      ,Cpu_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Cppe
      ,Iowait_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Iope
      ,Rws / Decode(Execs, 0, NULL, Execs) Rwpe
      ,Clwait_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Clpe
      ,'          ' Ep
      ,Substr(Regexp_Replace(St.Sql_Text, '(\s)+', ' '), 51, 50) Sqtn
  FROM (SELECT *
          FROM (SELECT Sql_Id
                      ,SUM(Executions_Delta) Execs
                      ,SUM(Buffer_Gets_Delta) Gets
                      ,SUM(Disk_Reads_Delta) Reads
                      ,SUM(Rows_Processed_Delta) Rws
                      ,SUM(Cpu_Time_Delta) Cpu_Time
                      ,SUM(Elapsed_Time_Delta) Elapsed_Time
                      ,SUM(Iowait_Delta) Iowait_Time
                      ,SUM(Clwait_Delta) Clwait_Time
                  FROM Dba_Hist_Sqlstat
                 /*WHERE Snap_Id > 52370
                   AND Snap_Id <= 52373*/
                 GROUP BY Sql_Id
                 ORDER BY SUM(Buffer_Gets_Delta) DESC)
         WHERE Rownum <= 20) s
      ,Dba_Hist_Sqltext St
 WHERE St.Sql_Id = s.Sql_Id
 ORDER BY Gets     DESC
         ,Cpu_Time DESC
         ,Sql_Id;

按执行次数

SELECT s.Sql_Id
      ,Execs
      ,Elapsed_Time / 1000000 Elapsed_Time
      ,Cpu_Time / 1000000 Cpu_Time
      ,Iowait_Time / 1000000 Iowait_Time
      ,Gets
      ,Reads
      ,Rws
      ,Clwait_Time / 1000000 Clwait_Time
      ,Substr(Regexp_Replace(St.Sql_Text, '(\s)+', ' '), 1, 50) Sqt
      ,'      ' Nl
      ,'     ' Ep
      ,Elapsed_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Elpe
      ,Cpu_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Cppe
      ,Iowait_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Iope
      ,Gets / Decode(Execs, 0, NULL, Execs) Bpe
      ,Reads / Decode(Execs, 0, NULL, Execs) Rpe
      ,Rws / Decode(Execs, 0, NULL, Execs) Rwpe
      ,Clwait_Time / 1000000 / Decode(Execs, 0, NULL, Execs) Clpe
      ,Substr(Regexp_Replace(St.Sql_Text, '(\s)+', ' '), 51, 50) Sqtn
  FROM (SELECT *
          FROM (SELECT Sql_Id
                      ,SUM(Executions_Delta) Execs
                      ,SUM(Buffer_Gets_Delta) Gets
                      ,SUM(Disk_Reads_Delta) Reads
                      ,SUM(Rows_Processed_Delta) Rws
                      ,SUM(Cpu_Time_Delta) Cpu_Time
                      ,SUM(Elapsed_Time_Delta) Elapsed_Time
                      ,SUM(Iowait_Delta) Iowait_Time
                      ,SUM(Clwait_Delta) Clwait_Time
                  FROM Dba_Hist_Sqlstat
                 /*WHERE Snap_Id > 52370
                   AND Snap_Id <= 52373*/
                 GROUP BY Sql_Id
                 ORDER BY SUM(Executions_Delta) DESC)
         WHERE Rownum <= 20) s
      ,Dba_Hist_Sqltext St
 WHERE St.Sql_Id = s.Sql_Id
 ORDER BY Execs DESC
         ,Sql_Id;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值