什么是AWR?
ASH(Active Session History,活动会话历史信息)、AWR(Automatic Workload Repository,自动负载信息库)、ADDM(Automatic Database Diagnostic Monitor,数据库自动诊断监视工具)是Oracle性能调整的三把利剑,需要深入地了解,但是面试一般都问得比较简单,主要问到的是AWR。
Oracle性能调整最重要的就是对最影响性能的SQL的调整。在一个应用中,能够影响到数据库的只有SQL,也只能是SQL。系统不能一味地依靠增强硬件、修改系统、数据库参数来提高数据库的性能,更多的应该关注那些最影响性能的SQL语句。ASH报告、AWR报告和ADDM报告都是能够找出影响性能SQL的工具。在分析ASH报告、AWR报告和ADDM报告的时候,最重要的工作就是找出对性能影响最大的SQL语句,并对其进行优化。
AWR(Automatic Workload Repository,自动负载信息库)是Oracle 10g引入的一个重要组件。在AWR里面存储着近一段时间内(Oracle 10g默认是7天,Oracle 11g及其之后的版本默认是8天)数据库活动状态的详细信息。
AWR报告是对AWR视图进行查询而得到的一份自动生成的报告,它用于显示两个快照或者两个时间点之间捕捉到的数据。AWR报告其实就是一张数据库健康体检表,它显示了数据库健康的各项指标。通过AWR报告,DBA可以容易地获知数据库最近的活动状态,数据库的各种性能指标的变化趋势曲线,数据库最近可能存在的异常,分析数据库可能存在的性能瓶颈,从而对数据库进行优化。AWR使用几个表来存储采集的统计数据,所有的表都存储在新的名称为SYSAUX的特定表空间中的SYS模式下,并且以WRM$*和WRH$的格式命名。前一种类型存储元数据信息(如检查的数据库和采集的快照),后一种类型保存实际采集的统计数据。H代表“历史数据(Historical)”,M代表“元数据(Metadata)”。在这些表上构建了几种带前缀DBA_HIST_的视图,这些视图可以用来编写自己的性能诊断工具。视图的名称直接与表相关;例如,视图DBA_HIST_SYSMETRIC_SUMMARY是在WRH$_SYSMETRIC_SUMMARY表上构建的。AWR报告所有的数据来源于AWR视图,即以DBA_HIST_开头的所有系统表。
输出AWR报告
sys登录状态下,使用如下脚本进行
1.当前连接实例的AWR报告提取:@?/rdbms/admin/awrrpt.sql
2.RAC的其他实例AWR报告提取:@?/rdbms/admin/awrrpti.sql
AWR的重要参数
DB TIME 和 DB CPU
DB Time:Amount of elapsed time (in microseconds) spent performing Database user-level calls. This does not include the elapsed time spent on instance background processes such as PMON.
说明:DB TIME= 所有前台session花费在database调用上的总和时间
注意是前台进程foreground sessions
包括CPU时间、IO Time、和其他一系列非空闲等待时间,别忘了cpu on queue time
公式:DB TIME= DB CPU + Non-Idle Wait + Wait on CPU queue
(思考DB TIME的定义定的是前台session)
DB CPU:Amount of CPU time (in microseconds) spent on database user-level calls. This does not include the CPU time spent on instance background processes such as PMON.
说明:简单的理解为数据库在运行时消耗的CPU的情况;
db cpu,只包含了用户进程消耗的cpu time,不包含后台进程消耗的cpu time。我们一般关心的是cpu time,并不关心db cpu
使用DB TIME 和 DB CPU进行负载检查
例一:
数据库运行了60分钟,操作系统有16个CPU,总共的DB TIME:60×16=960分钟;
CPU花费了233.57分钟在处理Oralce非空闲等待和运算上,也就是说CPU有 233.57/960*100% =24.3%
例二:
DB CPU(S)表明:数据库每次运行时在DB CPU上面的消耗情况,上面DB CPU/DB Time=97.5%(因为小数点的关系,该值会有误差)
详细的CPU的繁忙程度需要查看Instance CPU的%Busy CPU,当前为99.2%;
转自https://m.yisu.com/zixun/260096.html
标签:数据库,TIME,DB,AWR,time,CPU From: https://www.cnblogs.com/AllenWongFly/p/17446166.html