详解Oracle AWR运行日志分析工具

Oracle AWR报告是分析数据库性能的关键工具,它通过对比快照收集统计信息,帮助管理员找出性能瓶颈。本文详细介绍了AWR报告的Instance Efficiency Percentages、Shared Pool Statistics和Top 5 Timed Events等关键部分,强调了正确选择分析时间段的重要性,并讨论了如何通过缓存大小、负载概况和等待事件来评估数据库性能。通过分析,可以识别出如Buffer Busy Wait、I/O等待和LATCH争用等问题,从而进行针对性的调优。
摘要由CSDN通过智能技术生成


      在Oracle数据库学习和使用中,遇到性能问题,首要的步骤就是导出AWR分析报告,AWR是Oracle的一个脚本工具,通过周期性快照记录下当时的所有运行数据,数据库管理员可以导出其中一部分数据进行分析,从而找出来哪些脚本导致了目前的数据性能问题。一般情况下,安装完Oracle服务端后,默认都会有这个脚本工具(在数据库管理员HOME目录下),进入到sqlplus,然后直接运行@awrrpt脚本,按照提示操作就可以完成日志导出,导出的格式包括txt格式和html格式两种。


      AWR是Oracle 10g版本推出的新特性, 全称叫Automatic  Workload Repository自动负载信息库。AWR是通过对比两次快照收集到的统计信息,来生成报表数据,生成的报表包括多个部分。下面将对AWR报告的关键部分做详细的讲解。


Workload Repository Report 



     DBTime不包括Oracle后台进程消耗的时间。如果DB Time远远小于Elapsed时间,说明数据库比较空闲。DBTime= CPU time + Wait time(不包含空闲等待),DB time就是记录的服务器花在数据库运算(非后台进程)和等待(非空闲等待)上的时间:DB time = CPU time + all of nonidle wait event time



      如图,在79分钟里(其间收集了3次快照数据),数据库耗时11分钟,RDA数据中显示系统有8个逻辑CPU(4个物理CPU),平均每个CPU耗时1.4分钟,CPU利用率只有大约2%(1.4/ 79),说明系统压力非常小。



      如上例子,假设服务器是AIX的系统,4个双核CPU(共8个核),Report A在Snapshot间隔中总共约60分钟,CPU就共有60*8=480分钟,DB time为466.37分钟。说明CPU花费了466.37分钟在处理Oralce非空闲等待和运算上(比方逻辑读),也就是说CPU有 466.37/480*100% 花费在处理Oracle的操作上,这还不包括后台进程。Report B总共约60分钟,CPU有19.49/480*100% 花费在处理Oracle的操作上,很显然平均负载很低。


      从AWR Report的Elapsed timeDB Time就能大概了解DB的负载情况。


      对于批量系统,数据库的工作负载总是集中在一段时间内。如果快照周期不在这一段时间内,或者快照周期跨度太长而包含了大量的数据库空闲时间,所得出的分析结果是没有意义的。这也说明选择分析时间段很关键,要选择能够代表性能问题的时间段。


Cache Sizes


      显示SGA中每个区域的大小(在AMM改变它们之后),可用来与初始参数值比较。




      Shared pool主要包括Library cacheDictionary cacheLibrary cache用来存储最近解析(或编译)后SQL、PL/SQL和Java Classes等。Dictionary cache用来存储最近引用的数据字典。发生在Library cache或Dictionary cache的cache miss代价要比发生在Buffer cache的代价高得多。因此Shared pool的设置要确保最近使用的数据都能被cache。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值