Oracle数据库AWR报告如何收集、报告如何分析、数据库性能如何分析宝典

很多数据库及应用业务、操作系统资源的性能问题对于性能分析大师来说,他们往往通过收集数据库的性能报告来分析诊断,最终解决客户的性能问题。如果你想成为数据库的性能分析大师或专家,不防跟着我一起来学习以下相关的内容。
我将以Oracle数据库的AWR报告收集与分析为例,分别介绍报告的收集方法、分析方法以及相关的培训视频分享,让大家更加容易学会上手。
Oracle数据库AWR报告收集后打开长成如下样子:


以上报告可见,数据库存在用户IO等待,磁盘IO能力不足,同时存在写得性能较差的SQL语句,缺少表索引等导致严重的数据库性能问题。
AWR报告分析问题的应用场景:
分析数据库本身、SQL语句、资源性能、硬件的问题:
1.数据库执行时间过长
2.耗CPU高的SQL语句
3.物理读高的SQL语句
4.逻辑读高的SQL语句
5.数据库锁等待
6.数据库会话阻塞
7.数据库服务器磁盘读写IO能力差
8.数据库服务器内存不够用
9.数据库内存相关参数分配不合理导致性能慢
10.SQL语句硬解析过多导致性能慢
11.Oracle RAC集群组件同步等待慢
......
1.如何收集Oracle AWR报告
为了更精准分析数据库的问题,收集报告的时段建议为1,2小时,即收集问题(性能慢)发生点内的1,2小时内报告:
按以下方法进行收集:
先登录Oracle数据库服务器操作系统上,然后按以下方法进行收集:
$sqlplus / as sysdba --以数据库SYS用户登录到数据库sql>下面进行操作
sql>exec dbms_workload_repository.create_snapshot; --创建当前时间点的快照信息
sql>exec DBMS_WORKLOAD_REPOSITORY.AWR_SET_REPORT_THRESHOLDS(top_n_sql=>200); --如果收集AWR报告不全,也可以考虑把top_n_sql的值改小些,如改为20,50,推荐为100,200,300,可以收集到更多的耗时SQL语句进行性能问题分析
sql>@?/rdbms/admin/awrrpt.sql
运行时要输入:enter value for report_type: html
enter value for num_days: 输入天数,如收集当天产生的报告,则输入1,如收集前1天产生的报告则输入2,以此类推。
自动显示该天的对应的快照id与生成快照的时间(收集功能点慢时段1到2小时数据)
enter value for begin_snap: 输入要析的开始快照id (如79)
enter value for end_snap: 输入要析的结束快照id (如80)
enter value for report_name: awr_report_此处写该报告生成的时间 --该报表名就是最后生成的报告的文件名称
最后输入完,回车,开始生成报告,报告生成完,最后会显示报告存放在哪个地方及报告的文件名:
Stopped spooling to d:\Program Files\PLSQL Developer\awr_report_201008201002.html
Report written to awr_report_201008201002.html
2.如何收集Oracle AWR报告的学习微视频:
https://vip.kingdee.com/school/87572971782356736 (分享讲师:罗振其)
3.如何收集Oracle AWR报告各种收集详细方法文档:
http://note.youdao.com/noteshare?id=359ee8542db18ce20682391b8b3ff017&sub=73B614BBD02C4738A422FB1186F030
Oracle数据库AWR报告如何收集、报告如何分析、数据库性能如何分析宝典
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



