ADDM属于EM的诊断包,即Oracle Diagnostics Pack。
在19c 许可指南中,可见以下特性:
按照文档,ADDM的简介为:ADDM 是内置于 Oracle 数据库中的诊断软件。 ADDM 检查并分析自动工作负载存储库 (AWR) 中捕获的数据,以确定可能的数据库性能问题。 ADDM 然后执行以下操作:
自动数据库诊断监视器 (ADDM) 自动检测并报告数据库的性能问题。 在 Oracle Enterprise Manager Cloud Control (Cloud Control) 的数据库主页上显示为 ADDM 结果。 查看 ADDM 结果使您能够快速识别需要您注意的性能问题。 在使用本指南中描述的另一种性能调优方法之前,首先查看 ADDM 分析的结果。
每个 ADDM 发现都提供了一系列建议,以减少性能问题的影响。 作为定期数据库维护的一部分,您应该每天查看 ADDM 调查结果并实施建议。 即使数据库以最佳性能级别运行,您也应该继续使用 ADDM 持续监控数据库性能。
ADDM分析
在每个 AWR 快照之后(默认情况下每小时一次)执行 ADDM 分析,并将结果保存在数据库中。 然后您可以使用EM查看结果。
ADDM 分析是自上而下进行的,首先识别症状,然后细化分析以找到性能问题的根本原因。 ADDM 使用 DB 时间统计来识别性能问题。 数据库时间(DB)时间是数据库处理用户请求所花费的累积时间,包括所有非空闲的用户会话等待时间和CPU时间。
数据库性能调优的目标是减少给定工作负载下系统的 DB 时间。 通过减少 DB 时间,数据库可以使用相同或更少的资源来支持更多的用户请求。 ADDM 将使用大部分数据库时间的系统资源报告为问题区域,并根据所花费的相关数据库时间量按降序对它们进行排序。
ADDM建议
除了诊断性能问题之外,ADDM 还推荐可能的解决方案。 在适当的情况下,ADDM 会推荐多种解决方案供您选择。 ADDM 建议包括以下内容:
性能调优是一个迭代过程。 解决一个问题可能会导致瓶颈转移到系统的另一部分。 即使有 ADDM 分析的优势,也可能需要多个调整周期才能达到理想的性能水平。
ADDM与多租户
从 Oracle Database 12c 开始,默认情况下在CDB的根容器中启用 ADDM。 从 Oracle Database 19c 开始,您还可以在PDB中使用 ADDM。
配置ADDM
需要诊断包许可,以及STATISTICS_LEVEL 设置为TYPICAL(默认)或ALL。
I/O性能分析受DBIO_EXPECTED影响,其为读取单个数据库块所需的平均时间(以微秒为单位)。默认值为10。可以通过DBMS_STATS.GATHER_SYSTEM_STATS收集系统统计信息获取。
SQL> select * from aux_stats$;
SNAME PNAME PVAL1 PVAL2
________________ _____________ ___________________ ___________________
SYSSTATS_INFO STATUS COMPLETED
SYSSTATS_INFO DSTART 04-17-2019 02:04
SYSSTATS_INFO DSTOP 04-17-2019 02:04
SYSSTATS_INFO FLAGS 1
SYSSTATS_MAIN CPUSPEEDNW 2467.23680330286
SYSSTATS_MAIN IOSEEKTIM 10
SYSSTATS_MAIN IOTFRSPEED 4096
SYSSTATS_MAIN SREADTIM
SYSSTATS_MAIN MREADTIM
SYSSTATS_MAIN CPUSPEED
SYSSTATS_MAIN MBRC
SYSSTATS_MAIN MAXTHR
SYSSTATS_MAIN SLAVETHR
13 rows selected.
生成ADDM报告
有4种方法:
如果是PDB一级的ADDM报告,需要在PDB一级开启AWR,详见How to Create an AWR Report at the PDB level on 12.2 or later (Doc ID 2334006.1)。
SQL Plus方式如下:
SQL> @/u01/app/oracle/product/19c/dbhome_1/rdbms/admin/addmrpt.sql
执行ADDM建议
ADDM结果(Finding)可以有以下3种类型:
可以通过SQL Tuning Advisor直接运行ADDM的建议。