第13章性能优化——通向OCP之路第13章性能优化——通向OCP之路数据库系统在实际运行过程中,可能会因为各种原因导致性能的下降。对数据库的总体性能进行分析并提出解决的方案也是管理员需要面对的重要问题。本章介绍这些可以用来进行性能调节与分析的工具,以及如何利用这些工具进行性能分析和调整。13.1节介绍了常用性能分析工具的使用方法。13.2节介绍了数据表性能的优化。13.3节介绍了索引性能的优化。13.4节介绍了表空间性能的优化。13.1性能分析工具的使用13.1.1性能规划器的使用性能规划器(CapacityPlanner)是集成在Oracle企业管理包(OracleEnterpriseManagementPacks)中用来对反映系统性能的参数进行收集的工具,可以指定要收集的数据、收集数据的频率和数据装载到OracleCapacityPlanner历史记录数据库的时间。这样便于管理员对一定时间范围内的系统性能参数进行比较分析。1.性能规划器的设置(1)在服务器的桌面选择【开始】/【程序】/【Oracle-OraHome90】/【EnterpriseManagementPacks】/【Diagnostics】/【CapacityPlanner】选项,将出现如图13.1所示的性能规划器登录界面,利用登录管理服务器的用户名和密码就可以正常登录。图13.1性能规划器的登录(2)出现如图13.2所示的性能规划器的【收集】网络导航树,选择要收集性能数据的数据库myoracle.mynet,出现【收集选项】选项卡界面。其中关于【收集范围】的设置包括两个选项。【Oralce建议的收集】:可以对历史性能数据进行分析,支持性能诊断和报告。【用户自定义收集】:可以对历史性能数据进行分析,但不支持性能诊断和报告。关于【收集采样频率】有两个选项。【每时间间隔的采样数】:默认是每小时采样4次。【采样时间间隔】:设置采样的时间间隔。(3)如图13.3所示为性能规划器的【收集】/【存储选项】选项卡界面,收集到的性能–315–Oracle9i中文版基础培训教程赵松涛制作版权所有数据形成为可在任何Oracle数据库中存储的一组数据库表。可以选择将这些数据表存储在安装OracleManagementServer时创建的资料档案库(用于保存受管理环境的状态信息)或者是管理员制定的某个数据库中。设置的参数包括。选择将历史记录存放在资料档案库中或者是指定的数据库中。设置将样本数据传输到历史数据存放数据库的时间间隔。图13.2性能规划器的【收集】/【收集选项】选项卡图13.3性能规划器的【收集】/【存储选项】选项卡(4)如图13.4所示为性能规划器的【收集】/【清除选项】选项卡界面,用于指定保存数据的时间间隔和下次采样时将自动清除某个具体时间之前的数据。(5)如图13.5所示为性能规划器的【分析】选项卡,由于在图13.3所示界面中选择的存储性能参数的数据库在指定的数据库“myoracle.mynet”,因此这里要连接该数据库。单击选择图13.4性能规划器的【收集】/【清除选项】选项卡图13.5连接历史记录数据库(6)成功连接历史记录数据库后在【管理目标导航器】中选择【历史记录数据据库】/【数据库】/【myoracle.mynet】选项,历史记录数据库中存储的有关数据库的统计信息包括以下几类。响应时间:例程响应时间的统计数据。等待事件数:包括例程等待事件和等待事件的会话数的统计信息。I/O:包括文件统计信息和例程I/O统计信息。数据库例程:包括例程效率和初始化参数统计信息。后台进程:包括对重做统计信息、回退段和DBWR进程的统计信息。–316–第13章性能优化——通向OCP之路内存:对数据库字典和共享池的统计信息。用户统计信息:对会话动作计数的统计信息。装载:包括每秒的例程统计数和每个事务处理的统计数信息。选择每一类下面的具体统计信息,就可以进行历史数据的分析和判断了。2.性能规划器的历史数据分析下面以对【响应时间】/【例程响应时间】的历史统计数据进行分析为例,介绍如何利用性能规划器分析历史数据,并利用该工具对未来的性能进行预测分析。(1)单击【响应时间】/【例程响应时间】选项,在出现的【数据源】列表框中选择数据库“myoracle.mynet”,在【数据项】列表框中显示了历史数据中有关例程响应时间的参数。等待时间的百分比。CPU时间的百分比。每个事务处理的响应时间。提交计数。回退计数。每次执行的响应时间。执行计数。单击选择要查看的数据项后,单击【显示新图表】按钮,如图13.6所示。(2)出现如图13.7所示的采样数据的性能图表,单击如图所示的按钮系统将按照采样的性能数据提供对未来性能的预测。单击【趋势分析】按钮单击【显示新图表】按钮图13.6选择以图表方式显示样本性能数据图13.7图表方式显示的样本性能数据(3)出现如图13.8所示的趋势分析向导的【欢迎使用】界面,单击按钮。(4)出现如图13.9所示的趋势分析向导的【日期范围】界面,CapacityPlanner将以此日期范围为依据对数据如何随时间变化作出估计。所选的日期范围对趋势分析的结果会产生重要影响。如果估计依据的是系统非常忙的一段很短的时间会得到一个结果。但是,如果估计依据的是很长一段时间(包含系统不忙的时段)内收集的数据,则得到的结果将迥然不同。包括两个选项。如果选择【使用为图表选择的日期范围】单选钮,则CapacityPlanner将分析在分析窗口中当前显示的所有数据,然后生成基于该数据的估计值。–317–Oracle9i中文版基础培训教程赵松涛制作版权所有如果要分析特定范围的数据,而不是分析显示在图表中的数据,可选择【选择新的图表日期范围】单选钮。然后可以在两个选项中选择其一:生成基于最近一段时间的估计值和生成基于指定的特定日期范围的估计值。完成设置后单击按钮。图13.8趋势分析向导的【欢迎使用】界面图13.9趋势分析向导的【日期范围】界面(5)出现如图13.10所示的趋势分析向导的【类型】界面,使用趋势分析向导可以为所选的数据项执行两种趋势分析。【时间点趋势分析】:为数据项提供目标时间,然后OracleCapacityPlanner使用历史记录数据库中的值推测在此目标时间点上该数据项的值。【值趋势分析】:为数据项提供目标值,然后OracleCapacityPlanner使用历史记录数据库中的值推测数据项将达到目标值的时间。选择【估计在以下日期数据项将达到的值】单选钮进行值趋势分析,单击按钮。图13.10趋势分析向导的【类型】界面(6)出现如图13.11所示的趋势分析向导的【说明】界面,显示了系统计算后的趋势分析的结果。要在数据显示在图表上之前先修改趋势分析,可单击按钮,要更新图表,单击按钮。(7)出现如图13.12所示的对例程响应时间参数的分析结果,可将分析结果保存下来,也可以将其生成基于Web浏览器可以查看的网页。–318–第13章性能优化——通向OCP之路图13.11趋势分析向导的【说明】界面图13.12对性能参数的分析结果13.1.2顶层会话的使用顶层会话(TopSessions)是集成在Oracle企业管理包(OracleEnterpriseManagementPacks)中用来对系统中的会话性能进行监控和分析的工具。因为每个会话都是来自服务器或者客户机的连接请求,通过对这些连接请求的信息进行统计分析就可以观察到系统处理会话的性能。1.顶层会话的登录(1)在服务器的桌面选择【开始】/【程序】/【Oracle-OraHome90】/【EnterpriseManagementPacks】/【Diagnostics】/【TopSessions】选项,将出现如图13.13所示的登录界面。注意一定要单击【连接详细资料】按钮设置连接数据库的方式,否则将产生乱码。图13.13数据库登录(2)出现如图13.14一致的连接详细资料界面,选择选择【通过IntelligentAgent连接】单选钮,单击【确定】按钮完成。(3)出现如图13.15所示的顶层会话界面,以表格的形式显示了目前数据库系统的后台会话和用户会话的信息。主要包括SID、会话名称、状态、来源机器、会话使用的物理参数和内存参数等。图13.14设置连接数据库的方式图13.15顶层会话–319–Oracle9i中文版基础培训教程赵松涛制作版权所有2.顶层会话的信息分析(1)在图13.15所示界面中双击某个会话,将出现如图13.16所示的会话的【详细资料】选项卡,主要的信息包括。会话标识。当前状态。会话的CPU活动。会话的内存使用。会话的I/O使用。(2)如图13.17所示为会话信息的【统计信息】选项卡,以表格的形式显示了该会话的各项性能参数。图13.16会话信息的【详细资料】选项卡图13.17会话信息的【统计信息】选项卡由于会话信息是由系统定时采样得到的,因此,管理员可以通过设置采样的频率来收集会话的信息,默认为15秒。顶层会话工具也可以作为性能管理员的子工具被嵌套使用。13.1.3Oracle专家的使用Oracle专家(OracleExpert)是集成在调节包(Tuning)中用来对系统性能进行优化和调整的工具。图13.18OracleExpert的登录1.创建优化会话(1)在服务器的桌面选择【开始】/【程序】/【Oracle-OraHome90】/【EnterpriseManagementPacks】/【Tuning】/【Expert】选项,将出现如图13.18所示的Expert登录界面。有两种登录方式。【登录到OracleManagementServer】:通过管理服务器进行管理。【登录到独立的资料档案库】:在没有管理服务器的环境下选用。–320–第13章性能优化——通向OCP之路选择【登录到OracleManagementServer】单选钮,按照管理员登录。(2)出现如图13.19所示的创建优化会话向导的欢迎界面,优化会话是OracleExpert在优化数据库环境收集分析数据,生成优化建议方案、报告和实施脚本的基本配置。初次使用OracleExpert时需要创建一个新的优化会话。选择【创建一个新的优化会话】单选钮,单击按钮。(3)出现如图13.20所示的优化会话向导的创建界面,在【要优化哪个数据库】下拉列表框中选择“myoracle.mynet”,在【如何命名新的优化会话】文本框中输入“新建优化会话”,单击按钮。图13.19优化会话向导的欢迎界面图13.20优化会话向导的创建界面(4)出现如图13.21所示的新建优化会话的【范围】选项卡,用于设置优化的范围和优化会话的特征。优化范围的主要设置包括。【检查例程优化】:使用此优化范围来确定是否设置了正确的优化参数以及数据库例程是否能够有效利用系统资源。【检查SQL复用可能性】:使用此优化范围来确定优化会话工作量是否包含性质相同而语法上稍有不同的SQL语句。这样的SQL语句必须被单独分析和高速缓存。如果语法上的差异已被排除,那么OracleExpert将高速缓存该语句的单个版本,允许应用程序重复使用该高速缓存的SQL语句。图13.21新建优化会话的【范围】选项卡【检查相应的空间管理】:使用此优化范围来评估数据库空间管理问题,如表空间结构、方案对象的大小调整和布局,以及数据库用户的表空间分配。【检查最佳的数据访问】:使用此优化会话来优化指定表的索引,并检查需要重建的索引。共有3种选项。选择【对执行性能最差的SQL语句引用的表执行综合索引评估】单选钮,OracleExpert将自动在执行性能最差的SQL语句(在优化会话工作量中标识)引用的表中集中进行数据访问优化,优化会话的SQL语句将根据每个语句的每次执行的物理读取比率来划分等级,OracleExpert也将自动检查目标表中现有索引上的索引碎片。选择【对–321–Oracle9i中文版基础培训教程赵松涛制作版权所有指定的表进行综合索引评估】单选钮,OracleExpert将在指定的特定方案或表中集中进行数据访问优化,Orac