AWR视图

AWR报告的底层有一系列以DBA_HIST_为前缀的视图,用于保存AWR历史资料,oracle每隔一定时间,写一份所有资料、等待事件类视图的快照到此类视图中,AWR报告中大部分内容都来自这些快照。所有快照的信息都保存在DBA_HIST_SNAPSHOP视图中。

10g之前的oracle:用户的连接将产生会话,当前会话记录保存在v$session中;处于等待状态的会话会被复制一份放在v$session_wait中。当该连接
 断开后,其原来的连接信息在v$sessionv$session_wait中就会被删除;oracle10g及之后保留下了v$session_wait中的这些信息,并多了
v$active_session_history(ASH)视图,记录每个活动session在v$session_wait中最近10次的等待事件。

    ASH的采样数据是保存在内存中。而分配给ASH的内存空间是有限的,当所分配空间占满后,旧的记录就会被覆盖掉;而且数据库重启后,所有的这些
ASH信息都会消失。这样,对于长期检测oracle的性能是不可能的。在Oracle10g中,提供了永久保留ASH信息的方法,这就是AWR。
    
    由于全部保存ASH中的信息是非常耗费时间和空间的,AWR采用的策略是:每小时对v$active_session_history进行采样一次,并将信息保存到磁盘
中,并且保留7天,7天后旧的记录才会被覆盖。这些采样信息被保存在视图wrh$_active_session_history中。而这个采样频率(1小时)和保留时间
(7天)是可以根据实际情况进行调整的,这就给DBA们提供了更加有效的系统监测工具。


查看最早和最近的快照:

select * from dba_hist_snapshot
select max(begin_interval_time),
       min(begin_interval_time),
       max(snap_id),
       min(snap_id)
  from dba_hist_ash_snapshot;

查看快照的时间间隔和最早的快照编号:

select *
  from (select begin_interval_time, snap_id
          from dba_hist_ash_snapshot
         order by begin_interval_time)
 where rownum < 10;

所有其它的dba_hist_视图基本上都有snap_id列,可以根据此列关联。如查看从实例启动到20170507九点的物理读信息:

select a.begin_interval_time, a.snap_id, b.stat_name, b.value
  from dba_hist_snapshot a, dba_hist_sysstat b
 where a.begin_interval_time >=
       to_date('2017-05-7 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
   and a.begin_interval_time <=
       to_date('2017-05-7 09:00:00', 'yyyy-mm-dd hh24:mi:ss')
   and a.snap_id = b.snap_id
   and b.stat_name = 'physical reads';

或者

select a.begin_interval_time,
       b.begin_interval_time,
       a.value,
       b.value,
       (b.value - a.value) / 1800
  from (select a.begin_interval_time, a.snap_id, b.stat_name, b.value
          from dba_hist_snapshot a, dba_hist_sysstat b
         where a.begin_interval_time >=
               to_date('2017-05-7 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
           and a.begin_interval_time <=
               to_date('2017-05-7 09:00:00', 'yyyy-mm-dd hh24:mi:ss')
           and a.snap_id = b.snap_id
           and b.stat_name = 'physical reads') a,
       (select a.begin_interval_time, a.snap_id, b.stat_name, b.value
          from dba_hist_snapshot a, dba_hist_sysstat b
         where a.begin_interval_time >=
               to_date('2017-05-7 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
           and a.begin_interval_time <=
               to_date('2017-05-7 09:00:00', 'yyyy-mm-dd hh24:mi:ss')
           and a.snap_id = b.snap_id
           and b.stat_name = 'physical reads') b;

查看等等事件的语句:

select a.begin_interval_time, a.snap_id, b.sample_time,b.event,b.p1,b.p2
          from dba_hist_snapshot a, dba_hist_active_sess_history b
         where a.begin_interval_time >=
               to_date('2017-05-7 07:00:00', 'yyyy-mm-dd hh24:mi:ss')
           and a.begin_interval_time <=
               to_date('2017-05-7 09:00:00', 'yyyy-mm-dd hh24:mi:ss'

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值