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
有人可能会觉得很奇怪,相比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
相关文章推荐
- AWR你好(2)—— AWR报表生成脚本
- 生成AWR、ASH、ADDM、AWRINFO报告脚本
- oracle数据库 生成awr报告、ash报告详细步骤
- [11月2日的脚本] 为Exchange 2010生成 用户邮箱大小的报表
- AWR生成标准统计报表
- 用SQL生成awr报表中的“SQL ordered by Elapsed Time” 部分
- 批量生成awr报告 脚本
- 润乾报表中将生成的html脚本中的链接全部变为相对链接
- 自动生成awr报告shell脚本--每天早8点到晚12点每四个小时生成一次
- 用脚本自动生成AWR报告!
- 如何生成指定SQL语句的AWR报表
- 自动批量生成AWR报告的脚本
- python脚本自动生成ORACLE AWR报告
- 报表设计中参数、脚本的使用以及生成系统时间
- 报表设计中参数、脚本的使用以及生成系统时间
- Oracle AWR 报告 每天自动生成并发送邮箱 Python脚本
- Oracle Statspack 和 AWR 生成 脚本
- oracle 自动生成 awr 报告的 简单 shell 脚本
- 利用shell脚本自动获取awr报表
- SHELL版的自动批量生成AWR报告的脚本