第3章 自动数据库性能监视器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第3章自动数据库性能监视器

自动数据库性能监视器(ADDM)自动检查和报告数据库的性能问题。结果作为ADDM调查报告显示在Oracle企业管理器的数据库主页中,审查ADDM调查结果让你可以快速找出性能问题。

每个ADDM调查结果都提供了一串有关减少性能问题影响的建议,审查ADDM调查结果并执行建议是你每天正常维护数据库应该要做的事情,即使数据库处于未最佳的性能状态,你也应该继续使用ADDM监视数据库性能。

3.1 自动数据库诊断监视器概述

ADDM是构建在Oracle数据库内部的自我诊断软件,ADDM检查并分析自动工作量仓库(AWR)捕获到的数据,确定Oracle数据库可能存在的性能问题,然后它定位性能问题的根本原因,为纠正这些性能问题提供建议,并量化预计的性能收益,ADDM也可以识别不需要行动的区域。

3.1.1 ADDM分析

每次AWR快照(默认每小时一次)后就会执行ADDM分析,分析报告保存在数据库中,你可以通过Oracle企业管理器来查看这些报告,在使用本指南描述的另一个性能调整方法之前,先审查一下ADDM分析报告。

ADDM分析是从上到下执行的,首先确定症状,然后完善分析报告,指出导致性能问题的根本原因,ADDM使用DB time统计信息确定性能问题,DB time是数据库除了用户请求花去的递增式时间,包括等待时间和所有非空闲会话的CPU时间。

数据库性能调整的目标是减少给定工作量的DB time,通过减少DB time,数据库使用相同数量的资源可以支持更多用户请求,ADDM报告使用了大量DB time的系统资源,将其显示在问题区域,并按消耗的DB time数量进行倒序排序,关于DB time统计信息的更多信息请参考"时间模型统计"小节的内容。

3.1.2 ADDM建议

除了诊断性能问题外,ADDM还会给出建议解决方案,并且有时会建议多个可选的解决方案让你选择,ADDM建议包括:

硬件改造

添加CPU或修改I/O子系统配置

数据库配置

修改初始化参数配置

方案修改

对表或索引进行哈希分区,或使用自动段空间管理(ASSM)

修改应用程序

为序列使用缓存选项或使用绑定变量

使用其它顾问

在高负载SQL语句上运行SQL调整顾问或在热点对象上运行分段顾问。

ADDM应用在生产系统上受益良多,即使在开发和测试系统上,ADDM也可以提前提供潜在的性能问题警报。

性能调整是一个反复的过程,修复一个问题可能会导致瓶颈转移到系统的其它部分,即使使用ADDM分析报告,也要经过多次反复的调整才能使性能达到理想的水平。

3.1.3 Oracle真正应用集群中的ADDM

在Oracle真正引用集群(Oracle RAC)环境中,你可以使用ADDM分析整个数据库集群的性能,Oracle RAC中的ADDM会认为DB time是所有数据库实例数据库时间的总和,它只会报告集群级别的重要分析结果,例如,考虑局部各个集群节点的I/O水平就没什么意义,但所有节点的I/O水平的总和对于判定集群问题就显得很重要了。

3.2 配置自动数据库诊断监视器

3.2.1 设置初始化参数启用ADDM

默认情况下自动数据库诊断监视功能是被启用的,由初始化参数CONTROL_MANAGEMENT_PACK_ACCESS和STATISTICS_LEVEL控制。

CONTROL_MANAGEMENT_PACK_ACCESS初始化参数应该被设置为DIAGNOSTIC+TUNING(默认)或DIAGNOSTIC以确保启用自动数据库诊断监视器,如果将CONTROL_MANAGEMENT_PACK_ACCESS设置为NONE,就会禁用掉许多Oracle数据库特性,包括ADDM,强烈建议不要这么做。

STATISTICS_LEVEL初始化参数应该被设置为TYPICAL(默认)或ALL以确保启用自动数据库诊断监视器,如果将STATISTICS_LEVEL 设置为BASIC将会禁用掉许多Oracle数据库特性,包括ADDM,强烈建议也不要这么做。

确定ADDM是否启用的步骤:

1.在数据库主页,点击"服务器",显示"服务器"子页面。

2.在数据库配置小节,点击"初始化参数",显示"初始化参数"页面。

3.在"名称"字段处,输入STATISTICS_LEVEL,然后点击"开始"按钮,会显示一个初始化参数设置的表格。

4.完成下面两件事情:

如果"值"列显示"ALL"或"TYPICAL",那什么都不做。

如果"值"列显示"BASIC",就选择"ALL"或"TYPICAL",然后点击"应用"按钮。

5.在"名称"字段处,输入CONTROL_MANAGEMENT_PACK_ACCESS,然后点击"开始"按钮,会显示一个初始化参数设置的表格。

6.完成下面两件事情:

如果"值"列显示"DIAGNOSTIC"或"DIAGNOSTIC+TUNING",那什么都不用做。

如果"值"列显示"NONE",就选择"DIAGNOSTIC"或"DIAGNOSTIC+TUNING",然后点击"应用"按钮。

3.2.2 设置DBIO_EXPECTED参数

ADDM分析报告中的I/O性能某种程度上依赖于一个参数:DBIO_EXPECTED。它描述了I/O子系统期望的性能,DBIO_EXPECTED的值是读取一个数据库块的平均时间,单位是微妙(一百万分之一秒),Oracle数据库默认值使用10微妙,对于大部分硬盘驱动器这是一个合适的数值,如果你的硬件非常特殊,可以考虑使用一个不同的值。

确定DBIO_EXPECTED初始化参数是否正确设置的步骤如下:

1.测量在你的硬件上读取一个数据库块的平均时间

这个测量必须采取随机I/O方式,如果你使用的是标准硬盘驱动器,包括寻道时间,大部分硬盘驱动器的测量值都在5000到20000微妙之间。

2.为后面的ADDM分析设置一次性值

例如,如果测量值是8000微妙,那就以SYS用户登陆,然后执行下面的PL/SQL代码:

EXECUTE DBMS_ADVISOR.SET_DEFAULT_TASK_PARAMETER('ADDM', 'DBIO_EXPECTED', 8000);

3.2.3 AWR快照

默认情况下,自动工作量仓库(AWR)每小时会产生一个性能数据的快照,统计信息会在工作量仓库中保留8天,你可以修改产生快照的间隔时间,也可以修改统计信息的保留时间。

Oracle建议你调整AWR保留时间到至少1个月,你也可以扩展到一个业务周期,便于你对比,如一个会计季度,你也可以创建一个AWR

基线保留快照识别重要的时间期限。

位于快照间隔之间的数据由ADDM进行分析,ADDM比较快照之间的差异确定捕获了哪个SQL语句,久而久之,ADDM分析报告显示捕获到的大量SQL语句。

3.2.3.1 创建快照

通常不需要手动创建快照,因为AWR默认每小时都会产生一个性能数据的快照,但在某些情况下,需要手动创建快照以捕获活动持续期间的差异,如当你想比较比快照间隔时间短的时间范围的性能数据。

创建快照的步骤如下:

1.在数据库主页,点击"性能",显示"性能"页面。

2.在"附加监视链接"下,点击"快照",显示"快照"页面,列出了大部分最近的快照。

3.点击"创建"按钮,显示"确认"页面。

4.点击"确定"按钮,显示"正在处理:显示创建快照页面",当快照创建完毕后,"快照"页面显示一条确认消息。

在这个例子中,快照ID是249。

相关文档
最新文档