数据库中级教程 第十三讲 数据库的性能报告解读

数据库中级教程 第十三讲 数据库的性能报告解读

数据库的性能报告的解读与医生解读患者的检查报告是相似的。
遵循先总体,后部分的顺序。

先了解CPU,内存,I0的工作繁忙的程度是否正常。例如CPU的消耗过大,
再进一步地了解,是排序问题,还是SQL的解析问题,Sql的执行问题。
如果是SQL的执行问题,则进一步分析是执行计划的问题,还是有死锁的问题等。

如果是内存的问题,进一步分析是内存的碎片问题,还是缓冲区的命中率不高,
导致的频繁地换页的问题。

如果是IO的问题,进一步分析是并发的用户过多的问题,还是批量传输的数据量过大的问题。

针对如上的问题,我们可以关注AWR性能报告中的相应的指标。医生如果怀疑患者有心脏问题,
可以要关注血压,心率等指标,重点分析心电图的动作电位的曲线。作为DBA,如果我们怀疑
数据库有性能问题,要关注的可能是各种等待事件,SQL执行情况的统计信息等。

 例如如下的指标
   parse time elapsed/hard parse elapsed time

通过这两个指标的对比,可以看出硬解析占整个的比例。如果很高,就说明存在大量硬解析。

DB对CPU的利用情况,这就涉及到10g新引入的一个关于时间统计的视图 - v$sys_time_model。
简单而言,Oracle采用了一个统一的时间模型对一些重要的时间指标进行了记录,
具体而言,这些指标包括:
1) background elapsed time

    2) background cpu time

          3) RMAN cpu time (backup/restore)

1) DB time

    2) DB CPU

    2) connection management call elapsed time

    2) sequence load elapsed time

    2) sql execute elapsed time

    2) parse time elapsed

          3) hard parse elapsed time

                4) hard parse (sharing criteria) elapsed time

                    5) hard parse (bind mismatch) elapsed time

          3) failed parse elapsed time

                4) failed parse (out of shared memory) elapsed time

    2) PL/SQL execution elapsed time

    2) inbound PL/SQL rpc elapsed time

    2) PL/SQL compilation elapsed time

    2) Java execution elapsed time

    2) repeated bind elapsed time

上一篇:truncate恢复方法集合


下一篇:GBase 8a支持中文表名和字段名