Oracle 19c AWR报告深度解析:如何利用ADDM和ASH数据优化数据库性能
作为一名有经验的Oracle DBA,你一定对AWR报告不陌生。它就像数据库的“体检报告”,记录了系统在特定时间段内的运行状况。但在Oracle 19c时代,这份报告的内涵已经发生了深刻变化。过去,我们可能需要分别调取AWR、ADDM和ASH数据,像拼图一样费力地组合线索。现在,Oracle 19c将这三者深度融合,集成在一份AWR报告中,为我们提供了一站式的性能诊断全景图。这意味着,我们不再需要在不同工具间来回切换,就能获得从宏观负载到微观会话、从历史数据到智能建议的完整洞察。这篇文章,我将结合几个真实的调优案例,带你深入解读这份“超级报告”,看看如何从海量数据中快速定位瓶颈,并采取切实有效的优化措施。无论你是想解决突发的性能抖动,还是想对系统进行预防性健康检查,理解这套工具的组合拳,都能让你事半功倍。
1. 理解Oracle 19c AWR报告的全新架构与数据源
在深入分析之前,我们必须先搞清楚Oracle 19c的AWR报告里到底装了什么。传统的AWR(Automatic Workload Repository)主要收集系统级的性能统计数据,比如等待事件、SQL执行统计、系统负载等。这些数据基于固定的快照周期(默认每小时一次)生成,为我们提供了宏观的、历史性的性能视图。
然而,宏观数据有时无法解释瞬间发生的性能尖刺。这时就需要ASH(Active Session History)登场。ASH每秒采样一次当前活动会话的信息,相当于数据库的“心电图”,能精准捕捉到短至秒级的性能事件。在19c的AWR报告中,ASH数据不再是孤立的附件,而是被无缝整合进来,用于解释AWR快照间隔内发生的具体事件。
更强大的是ADDM(Automatic Database Diagnostic Monitor)。ADDM是一个基于AWR快照进行自动分析的引擎。它不像人类DBA那样可能被表象迷惑,而是运用内置的专家规则,直接分析根本原因,并给出具体的优化建议。在19c中,ADDM的分析结果和建议会直接呈现在AWR报告的相关章节,实现了从“数据展示”到“智能诊断”的飞跃。
这三者的关系,我们可以用一个简单的表格来理解:
| 组件 | 数据粒度 | 核心作用 | 在19c AWR报告中的体现 |
|---|---|---|---|
| AWR | 宏观、历史(快照级) | 记录系统整体负载、资源消耗、Top SQL等历史趋势。 | 报告的主体,提供负载概况、等待事件、SQL统计等核心章节。 |
| ASH | 微观、实时(秒级) | 捕捉活动会话的瞬时状态,用于诊断短时性能问题。 | 融入“等待事件”分析,提供“ASH报告”专属章节,可下钻到具体时间点。 |
| ADDM | 分析、建议(快照区间) | 自动分析性能问题的根本原因,并提供优化建议。 | 在报告末尾或相关部分直接给出“ADDM发现结果”和“建议”。 |


1554

被折叠的 条评论
为什么被折叠?



