本文面向没有太多 Oracle 基础知识,但是需要通过 AWR 报告来分析数据库性能或排查问题人员,通过对 AWR 报告的简介,了解其包含的主要信息,然后对一些能够帮助我们分析定位问题的章节做一点稍微详细的介绍。通过阅读本文,期望使读者能够快速抓住阅读 AWR 报告的重点,为分析判断数据库性能是否有问题提供帮助。 本文示例报告基于 Oracle 11.2.0.3.0 版本生成。
AWR是Oracle 10g版本推出的特性,全称叫做 Automatic Workload Repository 全自动负载信息库
。Oracle启动后,会有后台进程定时采集并保存系统快照信息,也可以手工创建快照。AWR通过对比两个时间点的快照信息,生成该时间段的AWR报告,帮助DBA或开发人员了解 Oracle 数据库的运行情况。Oracle 还提供了 ASH、ADDM等工具,本文不进行探讨。
AWR报告基本分为四部分:
报告一开始部分为基本信息,显示了DB实例、主机信息。DB Time 指标可以用来判断数据库是否繁忙,如果 Elapsed 时间乘以CPU个数小于DB Time 表示数据库比较繁忙。
Report Summary 分为8个部分,最主要的是 Load Profile。
Load Profile 主要用来显示当前系统的一些指示性能的总体参数,部分介绍如下:
latch: cache buffer chains
等待。注意 Load Profile 中的指标提供了 Per second 和 Per transaction 两个维度。Per second 主要是把快照抓到的值除以两个快照之间的秒数。这是我们用来判断性能的主要维度。Per transaction 是基于事务的维度,主要是把快照抓到的值除以两个快照之间的事务数。
Instance Efficiency Percentages 是一些命中率指标。Buffer Hit、Library Hit 等表示SGA ( System global area )的命中率。Soft Parse 指标表示共享池的软解析率,如果小于90%,就说明存在未绑定变量的情况。这些指标应当尽可能接近100%,如果过低一定是发生了性能问题。
11
个维度对SQL进行排序并给出了Top SQL的详细内容,可以点击查看具体的SQL内容,进一步分析调优方案。 这一部分涉及RAC运行的相关统计信息,对于初学者来说不太常用,本文暂不赘述。
其中 Time Model Statistics 几个有用的指标解释如下: