某条sql的buffer gets 的历史月度变化

----统计某条sql的buffer_gets 月度变化----适用于9i库--
select n.hash_value,n.stime,n.executions_delta_sum,n.buffer_gets_delta_sum,n.avg_buffer_gets,
round ((n.avg_buffer_gets - lag(n.avg_buffer_gets) over (order by n.stime ))/n.avg_buffer_gets*100,2) buffer_get_perc
from
(
select m.hash_value,
       to_char(m.snap_time, 'YYYY-MM') stime,
       sum(m.executions_delta) executions_delta_sum,
       sum(m.buffer_gets_delta) buffer_gets_delta_sum,
       round (sum(m.buffer_gets_delta)/sum(m.executions_delta),2) avg_buffer_gets
  from (select a.hash_value,
               b.snap_time,
               round(a.executions - lag(a.executions)
                     over(order by a.snap_id)) executions_delta,
               round(a.buffer_gets - lag(a.buffer_gets)
                     over(order by a.snap_id)) buffer_gets_delta
          from stats$sql_summary a, stats$snapshot b
         where a.hash_value = '3197777015'
           and a.snap_id = b.snap_id
           and b.snap_time BETWEEN
               TO_DATE('2012/04/01 00:00:05', 'yyyy/mm/dd hh24:mi:ss') AND
               TO_DATE('2012/07/01 00:00:10', 'yyyy/mm/dd hh24:mi:ss')
         order by a.snap_id) M
 where m.executions_delta > 0
   and m.buffer_gets_delta > 0
 group by m.hash_value, to_char(m.snap_time, 'YYYY-MM')
 )N
-- select sysdate,to_char(sysdate,'ww'),to_char(sysdate,'YYYY-MM') from dual;
 
----统计某条sql的buffer_gets 周度变化----适用于9i库--
select n.hash_value,n.stime,n.executions_delta_sum,n.buffer_gets_delta_sum,n.avg_buffer_gets,
round ((n.avg_buffer_gets - lag(n.avg_buffer_gets) over (order by n.stime ))/n.avg_buffer_gets*100,2) buffer_get_perc
from
(
select m.hash_value,
       to_char(m.snap_time, 'WW') stime,
       sum(m.executions_delta) executions_delta_sum,
       sum(m.buffer_gets_delta) buffer_gets_delta_sum,
       round (sum(m.buffer_gets_delta)/sum(m.executions_delta),2) avg_buffer_gets
  from (select a.hash_value,
               b.snap_time,
               round(a.executions - lag(a.executions)
                     over(order by a.snap_id)) executions_delta,
               round(a.buffer_gets - lag(a.buffer_gets)
                     over(order by a.snap_id)) buffer_gets_delta
          from stats$sql_summary a, stats$snapshot b
         where a.hash_value = '3197777015'
           and a.snap_id = b.snap_id
           and b.snap_time BETWEEN
               TO_DATE('2012/04/01 00:00:05', 'yyyy/mm/dd hh24:mi:ss') AND
               TO_DATE('2012/07/01 00:00:10', 'yyyy/mm/dd hh24:mi:ss')
         order by a.snap_id) M
 where m.executions_delta > 0
   and m.buffer_gets_delta > 0
 group by m.hash_value, to_char(m.snap_time, 'WW')
 )N
-- select sysdate,to_char(sysdate,'ww'),to_char(sysdate,'YYYY-MM') from dual;
 
 
----统计某条sql的buffer_gets 月度变化----适用于10g库--
 select m.*,
round((m.avg_buffer_gets - lag(m.avg_buffer_gets) over (order by m.stime))/m.avg_buffer_gets *100,2)  buffer_gets_perc
from
(
select s.sql_id,
       to_char(sn.begin_interval_time, 'YYYYMM') stime,
       sum(s.buffer_gets_delta) buffer_gets_delta,
       sum(s.executions_delta) executions_delta,
       --round(s.buffer_gets_delta/s.rows_processed_delta,2) avg_rows_per_buffergets,
       round(sum(s.buffer_gets_delta) /sum(s.executions_delta), 2) avg_buffer_gets
  from dba_hist_snapshot sn, sys.WRH$_SQLSTAT s
where sn.snap_id = s.snap_id
  and s.sql_id = '32gwz557f2fj3'
/*
('32gwz557f2fj3',
'1ydby3vmrrc2a',
'2c93jk7wgr4vu',
'8ufxhfhg5p2gv',
'3x30pc8mjrbdb',
'axnpu3jgp2a51'
)
*/
and s.executions_delta > 0
--and  sn.begin_interval_time between to_date('2012-09-18 00:00:00','yyyy-mm-dd hh24:mi:ss') and to_date('2012-09-19 00:00:00','yyyy-mm-dd hh24:mi:ss')
group by sql_id,to_char(sn.begin_interval_time, 'YYYYMM')
order by 2
)  M
order by a.sql_id,a.stime

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22578826/viewspace-745208/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22578826/viewspace-745208/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值