设为首页 加入收藏

TOP

如何收集系统最繁忙时段的AWR性能报告
2014-11-24 00:34:11 来源: 作者: 【 】 浏览:9
Tags:如何 收集 系统 繁忙 时段 AWR 性能 报告

众所周知,AWR在故障排查和性能优化过程中能起到举足轻重的作用,一个常用的思路是可以结合繁忙时段和空闲时段的两份AWR性能报告很明显地看出数据库性能的变动。

问:当你想收集数据库最繁忙时段的AWR性能报告怎么办?如何判断数据库在某个时段最繁忙呢?

思路:我们可以通过DB TIME大致地判断数据库在某些时段是空闲还是繁忙,通过读取相对应的SNAP_ID来生成AWR性能报告,以下是演示过程,可以根据实际的要求来稍做调整。

收集数据库系统最繁忙时段的两个间隔SNAP_ID

select * from (SELECT snap_id,
               (nvl(LEAD(snap_id, 1) OVER(ORDER BY snap_id), 0)) AS "UP_snapid",
               value,
               (nvl(LEAD(value, 1) OVER(ORDER BY value), 0)) AS "UP_value",
               (nvl(LEAD(value, 1) OVER(ORDER BY value), 0)) - value as "Result"
          FROM dba_hist_sysstat
         where stat_name = 'DB time'
         order by 5 desc)
         where "Result" > 0
运行结果如下图:

\

通过DBMS包读取AWR信息

SELECT output
  FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT(4160719624,
                                                      1,
                                                      2335,
                                                      2336));

运行结果如下图:

\

结合以上两个简单的步骤,就可以快速地收集数据库繁忙时段的AWR性能报告。但这只是相邻两个SNAP_ID的AWR性能报告,每个SNAP_ID默认相隔1小时,朋友们还可以通扩展过这个思路去收集N天内M小时间最繁忙时段的AWR性能报告。这里就不再赘述了。

-------------------------------------------------------------------------------------------------

本文来自于我的技术博客 http://blog.csdn.net/robo23

转载请标注源文链接,否则追究法律责任!

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据字典表/索引/序列/视图简析 下一篇Hibernate查询方式

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: