大多数做数据库优化的DBA在阅读AWR报告的时候,都是从TOP EVENT开始阅读的,或者把TOP EVENTS当成重点来阅读,所有的分析都是围绕着TOP EVENTS的,我刚刚开始学习阅读STATSPACK报告的时候,也是如此。不过随着对Oracle数据库优化与诊断的经验的深入,这个习惯逐渐被改变了。如果你让我看一份Oracle报告,我会围绕着Load profile来分析。因为大多数数据库的性能问题与故障都是与数据库负载相关的,经常有朋友说,为什么这套系统会出问题,另外一套不出问题,或者说为什么RAC的一个节点出问题,另外一个节点为什么不出问题。要回答这样的问题,大多数情况也都可以从负载的不同里去找答案。
Oracle的LOAD PROFILE是AWR报告中十分重要的一个章节,包含了大量的关于数据库负载的有价值的信息。LOAD PROFILE报告了数据库系统在一段时间内的平均负载情况,其中包括了许多性能关键指标,如每秒钟的逻辑读(logical reads per second)、物理读(physical reads per second)、执行的SQL语句数(SQL执行数)、每秒REDO量、每秒事务数、用户连接数(user calls per second)等。通过分析LOAD PROFILE,可以帮助DBA评估数据库系统的负载情况,并作出相应的优化决策。例如,如果LOAD PROFILE报告物理读非常高,那么可以尝试增加内存缓存,减少物理读取的次数,以提高数据库的性能,或者优化后端存储的IO性能。
我们改如何阅读LOAD PROFILE呢?今天我把我对LOAD PROFILE的阅读经验分享给大家。
大家能从LOAD PROFILE上看到些什么呢?我们先从指标的含义来简单的看看这份LOAD PROFILE。
- DB Time(s): 这个指标表示数据库系统用了多长时间来完成所有的操作,单位为秒。每秒平均处理时间为1,345.4秒,这是一个非常高的数字,表明数据库系统正在经历一定的压力和负载ÿ