ORACLE 性能分析报告的获取:
我们都知道,在oracle数据库当中有性能分析报告的设计,如ASH,AWR,ADDM,AWRDD,AWRSQRPT,这些报告就像我们去医院的检查报告一样,我们在这个报告上会得到一些性能指标,从而判断我们的数据库是否有一些问题。
AWR报告就像是我们的体检报告一样,会显示你哪里有问题但是不会告知你问题出在哪,ASH报告就是告诉你问题出现的原因是什么。如果在你的ASH报告当中,有一些你看不懂的问题,ADDM报告会给与你一些支持和建议。我们也经常会遇到将两个不同时段的AWR报告进行对比从而分析数据库的瓶颈的发展趋势,这样我们就可以将两个AWR报告进行合并,这个时候用到的是AWRDD。当我们通过ASH定位到问题出在SQL上,但是没有sql语句的执行计划和详细信息,那么我们会用到AWRSQRPT。
现在我们就逐个说一下用法:
一、AWR获取
AWR获取的方法有两种:
1.通过awrrpt.sql脚本,生成HTML或者是TXT格式的文件
2.通过diaoyongdbms_workload_repository中的awr_report_html/awr_report_text程序,通过SQL的形式输出。
awr_report_html当中只会产生一些html语句,看起来费劲,我们经常使用awr_report_text
select output from table(dbms_workload_repository.awr_report_text(dbid,instance_number,min_snap_id,max_snap_id));
3.手动时间截断
Oracle在默认的情况下会每小时收集一次AWR报告,如果时间的粒度过大,想要获取一小时之内的AWR报告,我们可以手动设置时间节点。
我们做个实验:
时间上不是1小时的粒度的。
二、ASH报告获取
ASH报告是针对我们出现的问题的一个更详细的报告,获取的方法也有两种:
1.通过脚本ashrpt.sql进行创建,生成html文件和txt文件。
2.通过调用dbms_workload_repository这个包的ash_report_html/ash_report_text程序。
和AWR的操作方法一致。
三、ADDM报告方式也有两种:
1.通过脚本@?/rdbms/admin/addmrpt.sql
2.通过dbms_workload_repository包的addm_report_html程序。
spool home/oracle/addm_rpt.html
select dbms_advisor.get_task_report(advisor_name,task_name,task_desc) from dual;
spool off
四、AWRDD的获取
获取AWRDD报告一般只是使用脚本的方法
@?/rdbms/admin/awrddrpt.sql
五、AWRSQ的获取
获取的方法一般都使用awrsqlrpt.sql脚本,创建的时候会需要输入需要的sql_id。之后会出现对应的执行计划等。
这些步骤都十分简单,我这篇文章不做报告分析,如何看报告,我会在之后的文章当中写出来。。。
THAT'S ALL
BY CUI PEACE!!!!
本文分享自微信公众号 - 最帅dba工作笔记,如有侵权,请联系 service001@enmotech.com 删除。