oracle常用脚本--Db block changes

造成SGA中数据块变化的insert,update或delete操作数 这项统计可以大概看出整体数据库繁忙度

select ss.snap_id as snap_id,
       to_char(sn.end_interval_time, 'yyyy-mm-dd hh24:mi:ss') as "snap_date",
       (sum(decode(stat_name, 'db block changes', value, 0)) -
       lag(sum(decode(stat_name, 'db block changes', value, 0)), 1)
        over(order by ss.snap_id)) /
       ((to_date(to_char(sn.end_interval_time, 'yyyymmddhh24miss'),
                 'yyyymmddhh24miss') -
       to_date(to_char(sn.begin_interval_time, 'yyyymmddhh24miss'),
                 'yyyymmddhh24miss')) * 24 * 60 * 60) "db block changes"
  from SYS.DBA_HIST_sysstat ss, SYS.DBA_HIST_snapshot sn
 where ss.snap_id = sn.snap_id
   and ss.stat_name in ('db block changes')
   and ss.dbid = sn.dbid
   and ss.instance_number = sn.instance_number
   and sn.instance_number = (select instance_number from v$instance)
   and sn.dbid = (select dbid from v$database)
   group by ss.snap_id,
          sn.begin_interval_time,
          sn.end_interval_time

 

posted @ 2017-10-31 20:17  tonnytangy  阅读(703)  评论(0编辑  收藏  举报