每天学透1个知识点—Oracle性能调优之如何解读AWR报告
请解读一份AWR报告,你会重点关注哪些部分?如何从中发现性能瓶颈?
“拿到一份AWR报告,我会按以下顺序阅读:
-
Report Summary:首先看 DB Time 和 Elapsed Time。DB Time/Elapsed Time 如果远大于CPU核数,说明系统存在大量等待。
-
Load Profile:关注 Redo size、Logical reads、Physical reads、Executions 等指标。对比基线,判断负载变化。
-
Instance Efficiency Percentages:Buffer Nowait %、Redo NoWait %、Buffer Hit % 等。如果Buffer Hit %低于90%,可能需要优化内存或I/O。
-
Top 5 Timed Events:这是重中之重。等待事件直接告诉你数据库在等什么。常见等待事件:
-
db file sequential read:通常是索引扫描的单块读,如果过高可能是索引不够高效。 -
db file scattered read:通常是全表扫描的多块读,如果过高可能是缺少索引。 -
log file sync:提交等待,可能是提交频繁或日志I/O慢。 -
enq: TX - row lock contention:行锁竞争,需要排查并发事务。
-
-
SQL Statistics:
-
SQL ordered by Elapsed Time:找出消耗时间最多的SQL,这些是调优的重点。
-
SQL ordered by Gets(逻辑读)和 Reads(物理读):找出资源消耗大户。
-
-
Segment Statistics:查看哪些段(表/索引)的物理读、逻辑读最多,可能是热点对象。
-
Time Model:了解DB Time主要消耗在哪个环节(如SQL执行、PL/SQL执行等)。
根据这些信息,我会形成初步结论,比如‘系统I/O等待严重,主要因为某几个SQL进行了大量全表扫描,建议添加索引’。”

浙公网安备 33010602011771号