性能规划器的使用
性能规划器(Capacity Planner)是集成在Oracle 企业管理包(Oracle Enterprise Management Packs)中用来对反映系统性能的参数进行收集的工具,可以指定要收集的数据、收集数据的频率和数据装载到Oracle Capacity Planner历史记录数据库的时间。这样便于管理员对一定时间范围内的系统性能参数进行比较分析。
1. 性能规划器的设置
(1)在服务器的桌面选择【开始】/【程序】/【Oracle-OraHome90】/【Enterprise Management Packs】/【Diagnostics】/【Capacity Planner】选项,将出现如图13.1所示的性能规划器登录界面,利用登录管理服务器的用户名和密码就可以正常登录。
(2)出现如图13.2所示的性能规划器的【收集】网络导航树,选择要收集性能数据的数据库myoracle.mynet,出现【收集选项】选项卡界面。
其中关于【收集范围】的设置包括两个选项。
【Oralce建议的收集】:可以对历史性能数据进行分析,支持性能诊断和报告。
【用户自定义收集】:可以对历史性能数据进行分析,但不支持性能诊断和报告。
关于【收集采样频率】有两个选项。
【每时间间隔的采样数】:默认是每小时采样4次。
【采样时间间隔】:设置采样的时间间隔。
(3)如图13.3所示为性能规划器的【收集】/【存储选项】选项卡界面,收集到的性能数据形成为可在任何Oracle数据库中存储的一组数据库表。可以选择将这些数据表存储在安装Oracle Management Server 时创建的资料档案库(用于保存受管理环境的状态信息)或者是管理员制定的某个数据库中。设置的参数包括。
选择将历史记录存放在资料档案库中或者是指定的数据库中。
设置将样本数据传输到历史数据存放数据库的时间间隔。
(4)如图13.4所示为性能规划器的【收集】/【清除选项】选项卡界面,用于指定保存数据的时间间隔和下次采样时将自动清除某个具体时间之前的数据。
(5)如图13.5所示为性能规划器的【分析】选项卡,由于在图13.3所示界面中选择的存储性能参数的数据库在指定的数据库“myoracle.mynet”,因此这里要连接该数据
(6)成功连接历史记录数据库后在【管理目标导航器】中选择【历史记录数据据库】/【数据库】/【myoracle.mynet】选项,历史记录数据库中存储的有关数据库的统计信息包括以下几类。
响应时间:例程响应时间的统计数据。
等待事件数:包括例程等待事件和等待事件的会话数的统计信息。
I/O:包括文件统计信息和例程I/O统计信息。
数据库例程:包括例程效率和初始化参数统计信息。
后台进程:包括对重做统计信息、回退段和DBWR进程的统计信息。
内存:对数据库字典和共享池的统计信息。
用户统计信息:对会话动作计数的统计信息。
装载:包括每秒的例程统计数和每个事务处理的统计数信息。
选择每一类下面的具体统计信息,就可以进行历史数据的分析和判断了。
2. 性能规划器的历史数据分析
下面以对【响应时间】/【例程响应时间】的历史统计数据进行分析为例,介绍如何利用性能规划器分析历史数据,并利用该工具对未来的性能进行预测分析。
(1)单击【响应时间】/【例程响应时间】选项,在出现的【数据源】列表框中选择数据库“myoracle.mynet”,在【数据项】列表框中显示了历史数据中有关例程响应时间的参数。
等待时间的百分比。
CPU时间的百分比。
每个事务处理的响应时间。
提交计数。
回退计数。
每次执行的响应时间。
执行计数。
单击选择要查看的数据项后,单击【显示新图表】按钮,如图13.6所示。
(2)出现如图13.7所示的采样数据的性能图表,单击如图所示的按钮系统将按照采样的性能数据提供对未来性能的预测。
(3)出现如图13.8所示的趋势分析向导的【欢迎使用】界面,单击按钮。
(4)出现如图13.9所示的趋势分析向导的【日期范围】界面,Capacity Planner 将以此日期范围为依据对数据如何随时间变化作出估计。 所选的日期范围对趋势分析的结果会产生重要影响。如果估计依据的是系统非常忙的一段很短的时间会得到一个结果。但是,如果估计依据的是很长一段时间 (包含系统不忙的时段)内收集的数据,则得到的结果将迥然不同。包括两个选项。
如果选择【使用为图表选择的日期范围】单选钮,则Capacity Planner 将分析在分析窗口中当前显示的所有数据,然后生成基于该数据的估计值。
如果要分析特定范围的数据,而不是分析显示在图表中的数据,可选择【选择新的图表日期范围】单选钮。然后可以在两个选项中选择其一:生成基于最近一段时间的估计值和生成基于指定的特定日期范围的估计值。
完成设置后单击按钮。
(5)出现如图13.10所示的趋势分析向导的【类型】界面,使用趋势分析向导可以为所选的数据项执行两种趋势分析。
【时间点趋势分析】:为数据项提供目标时间,然后 Oracle Capacity Planner 使用历史记录数据库中的值推测在此目标时间点上该数据项的值。
【值趋势分析】:为数据项提供目标值,然后Oracle Capacity Planner使用历史记录数据库中的值推测数据项将达到目标值的时间。
选择【估计在以下日期数据项将达到的值】单选钮进行值趋势分析,单击按钮。
(6)出现如图13.11所示的趋势分析向导的【说明】界面,显示了系统计算后的趋势分析的结果。要在数据显示在图表上之前先修改趋势分析,可单击按钮,要更新图表,单击按钮。
(7)出现如图13.12所示的对例程响应时间参数的分析结果,可将分析结果保存下来,也可以将其生成基于Web浏览器可以查看的网页。
顶层会话的使用
顶层会话(TopSessions)是集成在Oracle 企业管理包(Oracle Enterprise Management Packs)中用来对系统中的会话性能进行监控和分析的工具。因为每个会话都是来自服务器或者客户机的连接请求,通过对这些连接请求的信息进行统计分析就可以观察到系统处理会话的性能。
1.顶层会话的登录
(1)在服务器的桌面选择【开始】/【程序】/【Oracle-OraHome90】/【Enterprise Management Packs】/【Diagnostics】/【TopSessions】选项,将出现如图13.13所示的登录界面。注意一定要单击【连接详细资料】按钮设置连接数据库的方式,否则将产生乱码。
(2)出现如图13.14一致的连接详细资料界面,选择选择【通过Intelligent Agent连接】单选钮,单击【确定】按钮完成。
(3)出现如图13.15所示的顶层会话界面,以表格的形式显示了目前数据库系统的后台会话和用户会话的信息。主要包括SID、会话名称、状态、来源机器、会话使用的物理参数和内存参数等。
2. 顶层会话的信息分析
(1)在图13.15所示界面中双击某个会话,将出现如图13.16所示的会话的【详细资料】选项卡,主要的信息包括。
会话标识。
当前状态。
会话的CPU活动。
会话的内存使用。
会话的I/O使用。
(2)如图13.17所示为会话信息的【统计信息】选项卡,以表格的形式显示了该会话的各项性能参数。
由于会话信息是由系统定时采样得到的,因此,管理员可以通过设置采样的频率来收集会话的信息,默认为15秒。顶层会话工具也可以作为性能管理员的子工具被嵌套使用。
Oracle专家的使用
Oracle专家(Oracle Expert)是集成在调节包(Tuning)中用来对系统性能进行优化和调整的工具。
1. 创建优化会话
(1)在服务器的桌面选择【开始】/【程序】/【Oracle-OraHome90】/【Enterprise Management Packs】/【Tuning】/【Expert】选项,将出现如图13.18所示的Expert登录界面。
有两种登录方式。
【登录到Oracle Management Server】:通过管理服务器进行管理。
【登录到独立的资料档案库】:在没有管理服务器的环境下选用。
选择【登录到Oracle Management Server】单选钮,按照管理员登录。
(2)出现如图13.19所示的创建优化会话向导的欢迎界面,优化会话是Oracle Expert 在优化数据库环境收集分析数据,生成优化建议方案、报告和实施脚本的基本配置。初次使用 Oracle Expert 时需要创建一个新的优化会话。
选择【创建一个新的优化会话】单选钮,单击按钮。
(3)出现如图13.20所示的优化会话向导的创建界面,在【要优化哪个数据库】下拉列表框中选择“myoracle.mynet”,在【如何命名新的优化会话】文本框中输入“新建优化会话”,单击按钮。
(4)出现如图13.21所示的新建优化会话的【范围】选项卡,用于设置优化的范围和优化会话的特征。
优化范围的主要设置包括。
【检查例程优化】:使用此优化范围来确定是否设置了正确的优化参数以及数据库例程是否能够有效利用系统资源。
【检查SQL复用可能性】:使用此优化范围来确定优化会话工作量是否包含性质相同而语法上稍有不同的SQL语句。这样的 SQL 语句必须被单独分析和高速缓存。如果语法上的差异已被排除,那么Oracle Expert将高速缓存该语句的单个版本,允许应用程序重复使用该高速缓存的 SQL 语句。
【检查相应的空间管理】:使用此优化范围来评估数据库空间管理问题,如表空间结构、方案对象的大小调整和布局,以及数据库用户的表空间分配。
【检查最佳的数据访问】:使用此优化会话来优化指定表的索引,并检查需要重建的索引。共有3种选项。选择【对执行性能最差的 SQL 语句引用的表执行综合索引评估】单选钮,Oracle Expert 将自动在执行性能最差的 SQL 语句 (在优化会话工作量中标识) 引用的表中集中进行数据访问优化,优化会话的 SQL 语句将根据每个语句的每次执行的物理读取比率来划分等级,Oracle Expert 也将自动检查目标表中现有索引上的索引碎片。选择【对指定的表进行综合索引评估】单选钮,Oracle Expert 将在指定的特定方案或表中集中进行数据访问优化,Oracle Expert 也将自动检查目标表中现有索引上的索引碎片。如果只希望执行索引碎片检查,则选择【对指定的表进行索引碎片评估】单选钮。Oracle Expert 将只标识目标表中的索引,该目标表必定是遇到了索引滞流,并且需要重建以提高性能。
有关优化会话的特性参数设置包括。
【应用程序类型】:向Oracle Expert表明数据库环境中使用的工作量类型。这使得 Oracle Expert 可以根据工作量类型来优化数据库。可能的值为:OLTP(OLTP工作量通常对包含混合读写请求的表使用需要快速响应时间的简单查询)、 数据仓库(数据仓库工作量通常对大型的,通常为只读的数据库表使用综合查询)和多用途(多用途工作量通常具有非常宽的响应时间限制,其特征通常是一个或少数几个用户进行大量写密集型的事务处理)。
【关闭时间容差】:可以确定系统的建议案将倾向于优化恢复还是优化性能。如果容差很大,Oracle Expert 将优化性能。如果容差很小,Oracle Expert将优化恢复时间。
【峰值逻辑写速率】:向Oracle Expert 表明最大写入事务处理量,该信息用来评估服务器是否已配置为支持预期的写入事务处理速率。
【使用的表格应用程序】:告知 Oracle Expert 是否在数据库环境中使用表格应用程序。Oracle Expert 包含专用于表格应用程序的规则,如为例程设置打开游标的最小数量等。
【综合分析】:告诉Oracle Expert在当前数据库中有完整的工作量。
【优化程序验证】:通知Oracle Expert在实施建议案之前对建议案加以验证测试,以确保充分改善了性能。Oracle Expert 建议只实施那些确实能改善性能的建议案。
(5)图13.22所示为新建优化会话的【收集】选项卡,指定要为优化会话收集的数据的类型,包括系统、数据库、例程、方案和工作量5类。如果某个收集类被被启用,表明该信息对当前优化范围是必需的。如果整行被禁用,则表明当前优化范围不需要该信息。如果收集类选项被启用,但【收集类】复选框未被选择,【上次收集时间】单元格和【选项是否已设置】单元格将被禁用,表示该类信息将不会被收集,但通过选择【收集类】复选框可使它能被收集。
【上次收集时间】单元格显示每类数据上一次收集的日期和时间。
【是否已设置选项】单元格表示某一类是否已准备好可进行收集。
(6)图13.23所示为新建优化会话的【复查】选项卡界面,用于在优化会话和SQL 历史记录收集的分层视图中查看已收集的数据。
(7)图13.24所示为新建优化会话的【建议案】选项卡界面, 用于复查 Oracle Expert 作为分析优化会话数据的一部分生成的建议案。单击【生成】按钮系统将自动生成建议方案。
(8)图13.25所示为新建优化会话的【脚本】选项卡界面,显示有关 Oracle Expert 可创建的、能够帮助实施当前建议案的文件和脚本的说明。同时还显示 Oracle Expert 创建每个文件的位置。
2. 分析优化会话
分析优化会话用于由系统自动对创建的优化会话进行分析,得到一份评估报告。
(1)在【工具栏】选择【报告】/【分析】选项,如图13.26所示。
(2)出现如图13.27所示界面,提示将分析报告保存在网页中供打开查看,单击“确定”按钮。
(3)打开生成的网页,系统已经自动生成了分析报告,主要的方面包括。
建议案概要。
例程分析(包括数据库例程分析、兼容参数、并行查询参数评估、排序参数评估、SGA 参数评估、操作系统特定参数评估、争用问题评估、共享服务器选项)。
推荐回退段的空间管理建议案。
3. 系统性能的自动优化
Oracle Expert提供了对系统性能的自动优化功能。
单击选择数据库myoracle.mynet,在【工具栏】选择【自动优化】/【开始】选项将执行对Oracle 9i数据库系统性能的自动优化,如图13.28所示。
索引调节向导
索引调节向导(Index Tuning Wizard)是集成在企业管理器中可以查找并优化数据库中的索引问题。使用索引的目的是要提高对数据库表中数据进行访问的速度。Index Tuning Wizard 将对访问并更新某些表的 SQL 语句进行检查,确定表的索引是否正确编入。对于某些有可能受益于索引优化的表,向导将引导管理员逐步完成评估步骤,并进行所需的更改,以便实施索引建议方案。
(1)在按照登录【管理服务器】后的【企业管理器】的【管理目标导航器】中选择要进行索引性能分析的数据库“myoracle.mynet”,在【工具栏】选择【工具】/【Tuning Pack】/【Index Tuning Wizard】选项,如图13.29所示。
(2)出现如图13.30所示的索引调节向导的【欢迎使用】界面,单击按钮。
(3)出现如图13.31所示的索引调节向导的【应用程序类型】界面,用于选择目标数据库的应用程序类型,了解数据库应用程序的类型有助于 Index Tuning Wizard 确定要建议的索引的类型和数量。该信息还有助于确定是否使用某种数据库功能。有3种选项。
【联机事务处理(OLTP)】:应用程序必须提供快速的最终用户响应时间。OLTP应用程序的一个典型示例是银行系统,该系统的联机客户账户事务处理要求数据库能快速响应。
【数据仓库】:应用程序提供对大量数据的灵活存取。数据仓库应用程序的一个示例是分析人员用来进行产品调查的一个消费品市场数据库。
【多用途】:有些数据库可用于多个应用程序类型,包括 OLTP 和数据仓库的组合类型。这里选择【多用途】单选钮,单击按钮。
(4)出现如图13.32所示的索引调节向导的【方案选择】界面,用于指定要在何处搜索索引的优化机会,有两个选项。
【任意方案】:Index Tuning Wizard 将在数据库中的所有方案中搜索索引优化机会。这是推荐使用的选项,因为如果将所有方案包括在搜索范围内将得到更为有效的索引建议案。
【已选方案】:Index Tuning Wizard 将只在已选方案中搜索索引优化机会。如果数据库管理员要将对索引问题的搜索范围限制在其管理的方案范围内,应使用该选项。通过这种搜索得到的索引建议案的效果会较差,因为有许多方案未包括在搜索范围中。
这里选择【任意方案】单选钮,单击按钮。
(5)出现如图13.33所示的索引调节向导的【索引建议案】界面,单击【生成】按钮系统将自动对系统使用的索引性能进行分析和评价,该过程可能持续几分钟,具体时间根据具体的方案以及分析过程中涉及的 SQL 语句的数量而定。该操作在执行过程中将显示在“建议案”窗口中,使用该窗口可以监视评估进程的进度。如果没有检查出问题,将显示“未检查到任何索引问题”的信息,单击按钮。
(6)出现如图13.34所示的【分析报告和脚本】界面,生成索引建议案后,可使用Index Tuning Wizard来查看、保存和打印所生成的分析报告和相关脚本。
(7)出现如图13.35所示的【完成】界面。
Index Tuning Wizard 为使用索引建议案提供了几个选项。
【实施建议案】:如果要立即实施索引建议案,则选择该复选框。
【另存为实施脚本】:如果要创建可供今后复查、修改和实施的 SQL 脚本,则选择该复选框。
【另存为 Oracle Expert 优化会话】:如果已安装Oracle Expert,并且要在该 Index Tuning Wizard 会话中创建一个 Oracle Expert 优化会话,则选择该复选框。
这里选择【另存为 Oracle Expert 优化会话】复选框,单击“确定”按钮。
一般而言,当数据库应用程序执行SQL的性能下降,或者为数据库开发了新的应用程序,或者修改了现有应用程序的SQL语句,都可以执行索引调节向导,用于对基于执行的成本的Oracle应用程序进行优化。
SQL分析的使用
SQL分析(SQL Analyze)是集成在企业管理器中用于对具体的SQL语句进行性能分析的工具。完成同样任务的SQL语句,按照不同的语法进行书写,可以得到不同的执行性能。Oracle SQL分析工具提供了直观观察SQL语句执行性能的手段,管理员和程序开发人员可以通过对SQL语句不断进行优化来得到最佳的执行方案,从而提高系统的性能。
(1)在【企业管理器】的【管理目标导航器】中选择要进行索引性能分析的数据库“myoracle.mynet”,在【工具栏】选择【工具】/【Tuning Pack】/【SQL Analyze】选项。
(2)出现如图13.36所示的Oracle SQL分析的初始化参数界面。
Oracle SQL分析工具对每个数据库记录了3类信息的SQL分析。
初始化参数:包括例程参数和会话参数。
TopSQL:顶层SQL,使用系统资源密集的SQL语句的分析结果。
SQL历史记录:所有使用的SQL语句的分析结果。
(3)如图13.37所示为SQL分析的TopSQL界面,单击选择SQL文本,将显示该语句对应的性能分析参数,这些参数是Oracle数据库系统为SQL语句选择执行代价优化的依据。管理员了解这些参数的目的,是尽可能地通过设计使用资源最少的SQL语句来完成同样的工作,从而优化系统的性能。
管理员可以利用该工具来测试不同的SQL语句使用的系统资源,优化程序设计。
锁管理器
当数据库的用户数目越来越多,对服务器的资源将产生竞争,如果没有合理的机制来协调这种资源的竞争,就可能导致一些用户占用大量的资源,而另外一些用户永远得不到其希望的资源,这称为死锁。死锁发生后将大大影响系统的性能。这就犹如在公路上发生了交通事故后,其他汽车也不能或只能绕道行驶,交通系统的性能大大降低。而管理员要做的就是在发生事故时,赶紧查明在哪里发生的事故,然后尽快解决。
锁管理器就是Oracle提供的对系统资源使用的锁进行监控的工具。通过使用该工具,管理员可以发现哪些用户导致了死锁的发生,从而得出解决的方法。
(1)在按照登录管理服务器后的企业管理器中,在【管理目标导航树】中选择要进行索引性能分析的数据库“myoracle.mynet”,在【工具栏】选择【工具】/【Diagnostic Pack】/【Lock Monitor】选项。
(2)出现如图13.38所示的锁管理器界面,在【工具栏】选择【下钻】有4个选项,可以帮助管理员分析系统资源有无死锁发生。
【历史记录数据】:对历史数据的记录。
【用户类型锁图表】:用户获得的锁。
【阻塞/等待锁图表】:正在等待或处于阻塞/等待状态的锁。
【终止会话】:终止该用户的会话。
以上介绍了一些主要的可以对性能进行分析和调整的集成工具,由于这些工具的功能都被集成在了“性能管理员”里。
性能管理员
Oracle Performance Manager是集成在Oracle 企业管理包(Oracle Enterprise Management Packs)中的性能分析和调整工具,用于对节点、数据库和HTTP服务器的资源和操作系统性能进行分析和管理。
(1)在服务器的桌面选择【开始】/【程序】/【Oracle-OraHome90】/【Enterprise Management Packs】/【Diagnostics】/【Performance Manager】选项,出现如图13.39所示的登录界面。
有两个选项。
【登录到Oracle Management Server】:登录到管理服务器后使用性能管理员。
【独立,无资料档案库连接】:在直接连接数据库时使用,若选择该项,性能管理员界面将出现乱码。
选择【登录到Oracle Management Server】单选钮,并在【管理员】、【口令】文本框中按照自己的设置输入。
(2)出现如图13.40所示的性能管理员界面,性能管理员可以对下列资源进行性能分析。
OLAP Services:对联机分析处理服务性能进行分析。
并行管理器:对并行数据库系统性能进行分析。
数据库:对数据库的性能进行分析。
HTTP服务器:对HTTP服务器的性能进行分析。
节点:对节点管理的资源进行性能分析。
SQL Servers:对SQL Server服务器进行性能分析。
(3)若出现乱码的现象,可按照下列步骤重新登录数据库。在【管理目标导航器】中选择【网络】/【数据库】/【myoracle.mynet】选项,重新登录数据库,出现如图13.41所示的数据库登录界面,单击【连接详细资料】按钮。
(4)出现如图13.42所示的连接详细资料界面,有两个选项。
【直接连接】:客户机直接连接监控资源,容易产生乱码。
【通过Intelligent Agent连接】:通过智能代理建立连接,不产生乱码。
选择【通过Intelligent Agent连接】单选钮,在【代理主机】文本框中自动出现管理服务器的名称,单击【确定】按钮,这样就可以消除性能管理员管理中出现的乱码现象。