您的位置:首页 > 其它

AWR你好(4)―― ASH报表生成脚本

2011-08-10 23:07 375 查看
突然在ADDM之后又杀出了ASH……

有人可能会觉得很奇怪,相比ADDM来说AWR和ASH的关系更加紧密一点吧,但是o小白先介绍了AWR的报表生成脚本,然后是ADDM的报表生成脚本,最后才是ASH的,那原因是什么呢?

首先,在AWR你好(1)里面提到了,ASH其实就是v$active_session_hitory的缩写,通过查阅这个脚本一样可以得到ASH的内容, 当然,这不是主要原因,其实AWR和ADDM也有各自对应的动态性能视图,所谓的报表其实都是查询动态性能视图得到的,对新手来说,相比查看动态性能视 图,报表更加简单自动。最主要的原因其实是这样,AWR一般被称作标准统计表报(awrrpt生成的),这个应该是比较常用的,从数据库和实例的状态到和 性能相关的wait event和sql都是涉及到,ADDM呢主要是辅助手段,可以理解成扩展包,主要还是根据db time分析症状和原因,如果是初步查看的话,这两个家伙其实完全够用了。那ASH的报表又是什么作用呢?别急,我们一边操作一遍讲解。

同样的,报表在老地方$ORACLE_HOME/rdbms/admin/ashrpt和ashrpti(区别在以前的文章里说过咯~)。

运行了看看:



可以看到,和AWR不同,ASH报表不是以snapshot为前提的,而是以时间区间进行统计的,单位是分钟。那时间的格式提示也给得很清楚,需要注意的是 时间可以输入负数,代表当前时间前的前几分钟。这里Enter value for duration:输入的不是结束的时间,而是一个整数值,代表从begin time开始多少分钟。

那这里已经可以分析出ASH和AWR不同的地方。AWR是以快照为单位的,而ASH是以时间为单位的,默认情况下AWR是一个小时收集一次快照的,但是ASH可以精确到时间,那在时间粒度上ASH无疑可以做得更细。

ASH也是支持html和txt格式的,这里为了显示方便,我们还是选择html,结果如下:



由于报表还是比较长的,那这里贴出一部分。

首先值得说的一点是Data Source,这里Data Source有两部分,一个是DBA_HIST_ACTIVE_SESS_HISTORY,另一个是V$ACTIVE_SESSION_HISTORY。前者说明数据是从数据文件里获得的(磁盘),后者是从内存获取的,每隔10秒oracle进程(MMON和MMNL)会在将内存的ASH数据写入数据文件的过程中进行采样。

那ASH Report的主要内容,除了一些top之外,还有一个Activity Over Time,我们着重看一下:



Activity Over Time根据时间跨度,分割成了很多slot,slot的个数和时间的刚刚制定的duration有关,这里o小白制定的比较大,所以300min作为一 个slot,并且指出了在slot time中的slot count,从中可关注比较高的值和其对应的一些等待事件,o小白这里是CPU + Wait for CPU,那这个主要是闲置时间。

总结一下,ASH形成的报告比AWR形成的报告的内容粒度也要更加细,这么说吧,AWR报告应该是一个整体的笼统的报告,而ASH报告则是更加细节,更加能针对某个时间段总结出更加细粒度的一些性能问题。

那ASH的表报生成也就大概说到这里,希望大家自己动手,用AWR,ASH和ADDM可以对数据库的性能进行一些监控和分析,当然工具毕竟还是工具,如何用好还是要看各位dba的神通,o小白也期待更多的人一起研究数据库,分享经验,共同进步~

本文出自 “oracle小白前进之路” 博客,请务必保留此出处http://oxiaobai.blog.51cto.com/3369332/636283
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: