参考: Oracle? Database Reference 11g Release 2 (11.2) E40402-15
http://docs.oracle.com/cd/E11882_01/server.112/e40402/initparams038.htm#REFRN10296
计划升级数据库版本9i === > 11g
DIAGNOSTIC pack 主要包括 AWR, ADDM等
TUNING pack 主要包括SQL Tuning Advisor, SQLAccess Advisor等
1. 优点
DIAGNOSTIC pack主要是通过自动工作负载信息库采集数据库性能统计数据和量度,以供分析和调整,并显示在数据库中花费的准确时间,甚至保存会话信息。
AWR 实质上是一个 Oracle 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。
与 Statspack 不同,快照由一个称为 MMON 的新的后台进程及其从进程自动地每小时采集一次。为了节省空间,采集的数据在 7 天后自动清除。
快照频率和保留时间都可以由用户修改。AWR 使用几个表来存储采集的统计数据,所有的表都存储在新的名称为 SYSAUX 的特定表空间中的 SYS 模式下,
并且以 WRM$_* 和 WRH$_* 的格式命名。
ADDM 使用了由 AWR 采集的数据,为了帮助您作出决策。ADDM 可以定位AWR快照的瓶颈问题,评估其特性和成分,最后为数据库管理员提供解决方案。
在 AWR 进行的每一次快照采集之后,调用 ADDM 来检查量度并生成建议。
因此,实际上您拥有了一个一天二十四小时工作的自动数据库管理员,它主动地分析数据并生成建议,从而把您解放出来,使您能够关注更具有战略意义的问题。
TUNING pack则是Oracle 数据库 10g 及以上提供的帮助程序(或“顾问程序”),可帮助您决定最佳操作流程。
例如 SQL Tuning Advisor,它可以对大量 SQL 语句进行分析并提出调优建议。它将一个或多个 SQL 语句作为输入,调用自动调优化器对这些语句执行 SQL 调优。可针对任何给定的 SQL 语句运行。SQL Tuning Advisor 提供精确的 SQL 操作建议,从而实现对 SQL 语句的调优及其预期的性能优势。所提供的建议涉及对象统计信息收集、新索引创建、SQL 语句重构或 SQL 配置文件创建。您可以选择接受建议来完成 SQL 语句调优。
Oracle 数据库还可以识别有问题的 SQL 语句并使用Auto SQL Tuning Advisor 实施调优建议,从而自动调优 SQL 语句。
您也可以有选择性地针对单个或一组确认为有问题的 SQL 语句运行 SQL Tuning Advisor。
另一个顾问程序 (SQL Access Advisor),SQL Access Advisor 通过建议要创建、删除或保留的索引、物化视图、物化视图日志或分区来确定并帮助解决与 SQL 语句执行相关的性能问题。
除了像在 Oracle 数据库 10g 中一样可以分析索引、物化视图等,Oracle 数据库 11g 中的 SQL Access Advisor 还可以分析表和查询以识别可能的分区策略,这在设计最佳模式时可以提供很大帮助。在 Oracle 数据库 11g 中,SQL Access Advisor 现在可以提供与整个负载相关的建议,包括考虑创建成本和维护访问结构。
更多详情,请参考:
Performance Tuning Using Advisors and Manageability Features: AWR, ASH, ADDM and Sql Tuning Advisor ( Doc ID 276103.1 )
2. 缺点
根据以上的描述,DIAGNOSTIC pack 和 TUNING pack为DBA提供了大量用于诊断、优化数据库的方法,不过它同时也需要消耗更多的资源:
比如DIAGNOSTIC pack 的AWR和ADDM,他们需要由MMON及Slave进程定期采集数据库的各种度量数据,包括active session,并且将这些数据存放在SYSAUX表空间。
常见的问题是flush slave时消耗的CPU及I/O资源,同时需要更一定的SYSAUX表空间。具体消耗的资源大小取决于数据库session数和采样频度、保留策略。
同时,Oracle有内部策略来确保收集这些信息不会对业务系统产生很大影响,比如CPU时间达到一定阀值后终止某一次的快照的采集。
而关于TUNING pack,Oracle提供了自动调度来运行SQL Tuning Advisor,即Auto SQL Tuning Advisor,运行中需要消耗一定的CPU及I/O资源,不过它可以通过设置来禁止自动执行,
同时也可以通过设置来限制其执行的总时间。您也可以关闭Auto SQL Tuning Advisor,通过手工执行SQL Tuning Advisor来调优特定的SQL
综上所述:我们一般建议保留Diagnostics Pack + Tuning Pack,他们会为数据库诊断和调优提供大量有用的信息,除非因license问题而无法使用他们。