news 2026/7/12 18:21:06

数据库的体检报告:Oracle AWR报告深度解读与生成指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据库的体检报告:Oracle AWR报告深度解读与生成指南

一、开篇:AWR是DBA的“听诊器”


某天业务部门反馈数据库响应变慢,DBA登录后面对数百个性能指标,一时不知从何入手。<font color=#D32F2F>这时AWR报告就是最有力的诊断工具——它就像数据库的“体检报告”,记录了特定时间段内的所有关键性能指标,包括Top等待事件、负载画像、SQL统计、缓存命中率等。</font>


<font color=#1976D2>AWR(Automatic Workload Repository)是Oracle自动采集的性能数据仓库,默认每60分钟生成一次快照,保留8天。通过分析两个快照之间的性能差异,可以快速定位性能瓶颈。</font>


本篇文章从AWR报告的生成方法、报告结构、核心指标解读到实战分析,全面覆盖AWR报告的使用技巧,帮助你快速掌握这一DBA必备的诊断技能。


二、AWR报告生成方法


1. <font color=#1976D2>生成AWR报告的三种方式</font>


方式一:使用awrrpt.sql脚本(最常用)

@$ORACLE_HOME/rdbms/admin/awrrpt.sql -- 按提示输入: -- 1. 报告类型:HTML或TEXT -- 2. 开始快照ID -- 3. 结束快照ID -- 4. 报告名称


方式二:直接调用DBMS_WORKLOAD_REPOSITORY包

SELECT output FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT( l_dbid => 1234567890, l_inst_num => 1, l_bid => 100, l_eid => 101 ));


方式三:使用Oracle Enterprise Manager(OEM)

  • 登录OEM → 性能 → AWR → 生成报告


2. <font color=#F57C00>查看可用的AWR快照</font>


SELECT snap_id, TO_CHAR(begin_interval_time, 'YYYY-MM-DD HH24:MI:SS') AS begin_time, TO_CHAR(end_interval_time, 'YYYY-MM-DD HH24:MI:SS') AS end_time, startup_time FROM dba_hist_snapshots WHERE begin_interval_time > SYSDATE - 7 ORDER BY snap_id;


3. <font color=#388E3C>AWR快照管理</font>


-- 查看快照保留策略 SELECT retention/1440 AS retention_days, snap_interval/60 AS snap_interval_minutes FROM dba_hist_wr_control; -- 修改快照间隔(30分钟)和保留时间(14天) BEGIN DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 20160, -- 14天(分钟) interval => 30 -- 30分钟 ); END; / -- 手动创建快照 EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT;


三、AWR报告结构全景图


AWR报告结构

报告头

报告概要 Summary

主要部分 Main

附录 Appendix

数据库标识信息

快照时间范围

主机配置-CPU/内存

Load Profile 负载画像

Instance Efficiency 命中率

Top 5 Timed Events 等待事件

SQL Statistics SQL统计

Wait Events 等待事件详情

Segment Statistics 段统计

I/O Statistics I/O统计

Advisor Statistics 建议统计

Buffer Pool Statistics

PGA Statistics

Undo Statistics

Latch Statistics


报告结构解读:

  • <font color=#1976D2>蓝色(Load Profile):</font> 系统负载画像,每秒/每事务的资源消耗。
  • <font color=#388E3C>绿色(Instance Efficiency):</font> 缓存命中率,判断内存配置是否合理。
  • <font color=#D32F2F>红色(Top 5 Timed Events):</font> 最关键的等待事件,性能瓶颈的第一入口。


四、AWR报告头部分析


1. <font color=#1976D2>数据库标识信息</font>


DB Name DB Id Instance Inst# Release RAC Host ------------ ---------- --------- ----- --------- --- ------------ ORCL 1234567890 orcl 1 19.0.0.0 NO prod-server Snap Id Snap Time Sessions Cursors/Session ------------ ---------------- -------- --------------- Begin Snap: 100 10:00:00 85 3.2 End Snap: 101 11:00:00 120 4.1 Elapsed: 60.02 mins DB Time: 240.50 mins


2. <font color=#D32F2F>DB Time:最重要的健康指标</font>


精确描述:

DB Time是数据库处理所有用户请求的总时间(包括CPU时间和等待时间)。<font color=#D32F2F>DB Time / Elapsed Time = 平均活跃会话数,如果超过CPU核心数,说明存在排队。</font>


DB Time = 240.50 mins Elapsed = 60.02 mins 平均活跃会话数 = 240.50 / 60.02 ≈ 4.0 如果CPU核心数 = 8 → 4 < 8,系统健康 如果CPU核心数 = 2 → 4 > 2,存在严重CPU排队


五、Report Summary核心解读


1. <font color=#D32F2F>Top 5 Timed Events:性能瓶颈第一入口</font>


报告示例:

Top 5 Timed Events by Total Wait Time ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Event Waits Time(s) Avg Wait(ms) %DB Time Wait Class ------------------------------ -------- -------- ------------- --------- ---------- db file sequential read 1,234,567 8,500 6.9 58.5 User I/O CPU time 3,200 22.0 log file sync 456,789 1,200 2.6 8.3 Commit db file scattered read 23,456 800 34.1 5.5 User I/O enq: TX - row lock contention 1,234 500 405.2 3.4 Application


关键等待事件解读:


| 等待事件 | Wait Class | 常见原因 | 优化方向 |

|----------|-----------|----------|----------|

|db file sequential read| User I/O | 索引读取 | 优化SQL、添加合适索引 |

|db file scattered read| User I/O | <font color=#D32F2F>全表扫描</font> | 优化SQL、添加索引 |

|log file sync| Commit | 提交时磁盘I/O慢 | 减少提交频率、使用SSD |

|enq: TX - contention| Application | 行级锁等待 | 优化事务逻辑 |

|latch: cache buffers chains| Concurrency | 热块争用 | 分区、反向键索引 |

|library cache: mutex X| Concurrency | 硬解析过多 | <font color=#388E3C>使用绑定变量</font> |

|free buffer waits| Configuration | Buffer Cache不足 | 增大DB_CACHE_SIZE |


2. <font color=#1976D2>Load Profile:系统负载画像</font>


报告示例:

Load Profile ~~~~~~~~~~~~ Per Second Per Transaction ----------- ---------------- DB Time(s): 4.0 0.012 CPU Time(s): 2.1 0.006 Redo size (bytes): 5,234,567 15,678 Logical reads (blocks): 125,678 376 Physical reads (blocks): 3,456 10 Physical writes (blocks): 1,234 4 Parses (SQL): 234 0.7 Hard parses (SQL): 150 0.45 ← 异常! Executes (SQL): 567 1.7 Transactions: 334


关键指标解读:


| 指标 | 正常范围 | 需关注 | 严重问题 |

|------|----------|--------|----------|

|Hard parses/s| < 10 | 10~50 | <font color=#D32F2F>> 50</font> |

|Physical reads/s| 取决于存储 | 持续高于峰值 | <font color=#F57C00>磁盘瓶颈</font> |

|Redo size/s| 取决于业务 | > 50MB/s | <font color=#F57C00>日志压力大</font> |

|Logical reads/s| 取决于业务 | > 100000 | <font color=#F57C00>SQL效率低</font> |


3. <font color=#388E3C>Instance Efficiency:缓存命中率</font>


报告示例:

Instance Efficiency Percentages ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Buffer Nowait %: 99.99 Redo NoWait %: 99.95 Buffer Hit %: 97.50 In-memory Sort %: 98.20 Library Hit %: 95.30 Soft Parse %: 94.80 Execute to Parse %: 85.60 Latch Hit %: 99.90


命中率诊断标准:


| 指标 | 理想值 | 如果偏低的原因 |

|------|--------|---------------|

|Buffer Hit %| <font color=#388E3C>> 95%</font> | Buffer Cache不足或SQL效率低 |

|Library Hit %| <font color=#388E3C>> 99%</font> | <font color=#D32F2F>硬解析过多或共享池不足</font> |

|In-memory Sort %| <font color=#388E3C>> 99%</font> | PGA不足,磁盘排序过多 |

|Soft Parse %| <font color=#388E3C>> 99%</font> | <font color=#D32F2F>未使用绑定变量</font> |


六、AWR报告SQL Statistics分析


1. <font color=#D32F2F>Top SQL by Elapsed Time</font>


报告示例:

SQL ordered by Elapsed Time ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Elapsed Time (s) Executions Elapsed per Exec(s) %Total %CPU %IO SQL Id ---------------- ---------- -------------------- ------- ----- ----- ------------- 8,500 1,000 8.50 35.2 22.0 78.0 a1b2c3d4 3,200 500 6.40 13.3 45.0 55.0 e5f6g7h8


2. <font color=#F57C00>Top SQL by Buffer Gets</font>


SQL ordered by Gets ~~~~~~~~~~~~~~~~~~~~ Buffer Gets Executions Gets per Exec %Total CPU Time(s) SQL Id --------------- ---------- -------------- ------ ----------- -------- 50,000,000 1,000 50,000 45.5 4,500 a1b2c3d4


<font color=#D32F2F>每次执行5万次逻辑读——SQL效率极低,需要优化执行计划。</font>


3. <font color=#388E3C>获取完整SQL文本</font>


SELECT sql_text FROM dba_hist_sqltext WHERE sql_id = 'a1b2c3d4';


七、AWR报告实战分析


<font color=#1976D2>案例一:CPU飙升问题诊断</font>


AWR报告关键发现:

DB Time: 480 mins / Elapsed: 60 mins = 8.0 (平均活跃会话) CPU Time: 400 mins (占DB Time的83%) Top Event: library cache: mutex X (35% DB Time) Load Profile: Hard parses = 150/s ← 异常! Library Hit %: 82% ← 严重偏低!


诊断结论:<font color=#D32F2F>硬解析过多导致CPU飙升。</font>


解决方案:

  • 应用代码修改为使用绑定变量。
  • 增大共享池。
  • 紧急情况可设置cursor_sharing=FORCE


<font color=#F57C00>案例二:I/O性能问题诊断</font>


AWR报告关键发现:

Top Event: db file sequential read (45% DB Time) db file scattered read (15% DB Time) Physical reads: 50000/s ← 异常! Buffer Hit %: 85% ← 偏低!


诊断结论:<font color=#F57C00>大量物理I/O,Buffer Cache不足或SQL效率低。</font>


解决方案:

  • 优化Top SQL(添加索引、改写SQL)。
  • 增大Buffer Cache。
  • 使用Keep池缓存热点表。


八、总结:记住这个“体检报告”类比就够了


<font color=#1976D2>【AWR报告是数据库的体检报告】</font>


  • DB Time:<font color=#D32F2F>体温——超过CPU核心数就是发烧。</font>
  • Top 5等待事件:<font color=#F57C00>五大症状——咳嗽(I/O等待)、发烧(CPU高)、胸闷(锁等待)。</font>
  • Load Profile:<font color=#1976D2>生活习惯调查——每天抽几包烟(Hard Parse频率)、运动量多少(Physical Read频率)。</font>
  • Instance Efficiency:<font color=#388E3C>器官功能指标——肝功能(Buffer Hit)、肾功能(Library Hit)。</font>
  • Top SQL:<font color=#D32F2F>病灶定位——哪个器官出了问题。</font>


<font color=#1976D2>AWR报告是DBA最常用的性能诊断工具。掌握AWR报告的生成方法和核心指标解读,就能在数据库出现问题时快速定位根因。记住:先看DB Time判断整体健康,再看Top 5等待事件找到问题方向,最后通过Top SQL和执行计划精确诊断。</font>


你在日常运维中最常使用的AWR报告指标是什么?是如何通过AWR报告定位性能问题的?欢迎评论区分享你的经验。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/12 18:20:59

鼻炎患者提高免疫力选哪款多维d3好

对于受反复鼻炎困扰的人群来说&#xff0c;免疫力低下、呼吸道屏障薄弱是鼻炎频繁发作的核心原因&#xff0c;通过补充针对性的多维D3可以从营养层面调节免疫、修护鼻腔黏膜&#xff0c;那鼻炎患者提高免疫力选哪款多维d3好&#xff0c;结合配方针对性、安全性和权威认证&#…

作者头像 李华
网站建设 2026/7/12 18:20:56

Unity AVPro视频黑屏:StreamingAssets路径配置与跨平台加载全解析

1. 项目概述&#xff1a;当Unity遇上AVPro&#xff0c;视频黑屏的“元凶”是谁&#xff1f;如果你正在用Unity开发一个需要播放高清视频的项目&#xff0c;并且选择了功能强大的AVPro Video插件&#xff0c;那么“打包后视频黑屏”这个问题&#xff0c;大概率会成为你开发路上一…

作者头像 李华
网站建设 2026/7/12 18:16:17

星盘接口开发文档:塔罗牌随机发牌接口指南

星盘接口开发文档&#xff1a;塔罗牌随机发牌接口指南 1. 引言 本文档详细介绍了占星系统的塔罗牌随机发牌接口的使用方法&#xff0c;包括请求参数详解、响应数据结构、错误处理机制以及最佳实践建议。 2. 接口基础信息 接口名称: 塔罗牌随机发牌 请求方式: POST Content…

作者头像 李华
网站建设 2026/7/12 18:16:14

SoloX性能测试终极指南:3分钟搞定Android/iOS应用性能分析

SoloX性能测试终极指南&#xff1a;3分钟搞定Android/iOS应用性能分析 【免费下载链接】SoloX &#x1f4af;SoloX - Real-time collection tool for Android/iOS performance data.&#xff08;Android性能测试android performance\iOS性能测试ios performance\移动端性能测试…

作者头像 李华
网站建设 2026/7/12 18:13:25

后台任务合规设计:用户可感知、系统约束、失败补偿

后台任务合规设计&#xff1a;用户可感知、系统约束、失败补偿 后台任务不是想跑就跑。系统会限制资源&#xff0c;用户也会关注耗电和隐私。合规设计不是降低能力&#xff0c;而是让后台能力有边界、有提示、有补偿。 这类问题通常不是某个 API 写错&#xff0c;而是工程边界没…

作者头像 李华