本教程介绍了如何使用企业管理器和自动负载信息库主动调整数据库。Tuning Advisor 使用的许多分析工具已经公开,从而使数据库管理员还能够执行被动型调节。
大约 45 分钟
本教程包括下列主题:
| 概述 | ||
| 前提条件 | ||
| 查看 Database Wait | ||
| 检查 Database Wait 类的 TOP SQL | ||
| 使用 SQL Tuning Advisor 调整 SQL 语句 | ||
| 查看 SQL 语句的 SQL 执行细节 | ||
| 总结 | ||
| 相关信息 | ||
将光标置于此图标上可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注意:此外,还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
自动负载信息库收集、处理和维护性能统计信息,以便检测和自行调节问题。自动数据库诊断监视程序 (ADDM) 减少了诊断和调整 Oracle 系统所需的工作量。SQL Tuning Advisor 特性提供了一种快速、高效的技术来优化 SQL 语句。
在完成对数据的诊断监视后,可以在 Oracle 企业管理器屏幕中查看性能诊断信息。遇到性能问题后,可以启动 Oracle 顾问程序以进一步确定和纠正问题。例如,ADDM 可以标识高峰负载 SQL 语句,然后可以使用 SQL Tuning Advisor 调整这些语句。
使用 Oracle 数据库 10g 新的集成和自动调节特性,可以使用企业管理器检测所发生的问题,并设计用于调节问题的解决方案。作为数据库管理员,您只需实施建议。这称为主动型调整。
还可以使用相同工具执行您自己的数据库性能分析。可以在最适合您业务的方法中创建 SQL 调整任务来解决问题。这称为被动型调整。
开始学习本教程之前,您应已经:
| 1. |
完成了教程:使用真正应用集群 (RAC) 和自动存储管理 (ASM) 在 Windows 上安装 Oracle 数据库 10g。 或者 |
| 1. |
打开一个命令行窗口,将目录更改为 wrkdir,然后运行以下 OS 脚本: cd /home/oracle/wkdir ./setup_perflab.sh 注意: 该脚本在实验过程中继续运行。 |
|
| 2. |
打开一个浏览器,并输入以下 URL: http:// 输入 sys 作为用户名,指定口令,以 SYSDBA 身份连接,然后单击 Login。 |
|
|
3. |
向下滚动至主页底部,然后单击 O10G_O10G1 Instance 链接。 |
|
| 4. |
选择 Administration 链接。 |
|
| 5. |
在标题为 Workload 的部分中,单击 Automatic Workload Repository 链接。 |
|
| 6. |
确定已经为该数据库采集了多少快照。查看 Snapshots 下的数量和最后一次 ADDM 快照采集的时间。至少应该有三个快照。 单击 Cluster Database Instance 定位器链接。 |
|
| 7. |
单击 Performance 链接。 |
|
| 8. |
在 Performance 窗口中查看 Sessions: Waiting and Working 图。显示一个表示数据库当前负载的图表。 (用数据填充该图可能需要一分钟的时间。) 该图由 ADDM 快照收集的数据填充。图表的边上是图例。每个图例项具有不同的颜色。您应能够从图中快速看出占用时间最多的项是黄色的,即用户 I/O。单击 User I/O 链接。 |
|
| 9. |
在 Active Sessions Waiting:User I/O 图表下有两个饼图。 查看左侧的饼图 Top Waiting SQL。该饼图显示了大多数等待 (53 %) 是由一个 SQL 语句引起的。 查看右侧的饼图 Top Waiting Sessions。这个饼图显示当前最活跃的几个会话等待的时间几乎占相同的百分比。 |
|
如上一个任务中所示,有一个导致大多数数据库等待的 SQL 语句。在这个任务中,您将探究根本原因。执行以下步骤:
| 1. |
从 Active Sessions Waiting:User I/O 页面中,单击该页面中间的 Top SQL 选项卡。 |
|
| 2. |
在出现的详情页面上,查看 Wait Events for Top SQL 表,该表按活动(%) 排序。 您可以看到 Top SQL 语句将其大部分时间花费在了“db file scattered read”或“read by other session”活动上。单击具有最高活动百分比的 SQL 语句的 SQL ID。 |
|
| 3. |
显示这条 SQL 语句的执行计划。单击 Current Statistics 选项卡。 |
|
| 4. |
显示这条 SQL 语句的统计数据。单击 Execution History 选项卡。 |
|
| 5. |
显示这条 SQL 语句的统计分析图表。CPU 和 Elapsed Time 图表显示在一段时间上执行这条 SQL 语句的 CPU 使用率。选择 Seconds Per Execution,单击 Go,显示这条 SQL 语句的每次执行使用的时间和资源。 |
|
| 6. |
从显示的图表中,可以确定 CPU 资源使用率在增加,执行这条 SQL 语句花费的时间也在增加。单击 Tuning History 选项卡。 |
|
| 7. |
显示之前为这条 SQL 语句提供的调整建议。当前没有建议。您现在就可以使用 SQL Tuning Advisor 调整 SQL 语句了。 |
|
正如在上一个关于被动型调整的部分中确定的那样,目标 SQL 语句需要调整。SQL Tuning Advisor 将为您调整执行计划。执行以下步骤:
| 1. |
单击 Run SQL Tuning Advisor。 |
| 2. |
在 Schedule Advisor 窗口中,确保选择了 Scope 下的 Comprehensive,则将立即安排该作业。单击 OK。 |
| 3. |
SQL Tuning Advisor 创建一个分析 SQL 语句的任务。 完成此任务后,它将显示一组调整建议。 |
| 4. |
单击 New Explain Plan 按钮,查看建议的修改。 |
|
5. |
正如您所看到的,新的解释计划删除了全部的表扫描。 单击 SQL Tuning Results 链接。 |
| 6. |
单击 View Recommendations。 |
|
7. |
单击 Implement 按钮,执行调整建议。 |
| 8. |
出现一条确认页面,指示 SQL Profile 成功创建。 单击 Cluster Database Instance 定位器链接。 |
您已执行了调整建议,现在查看 SQL 语句和其执行细节。执行以下步骤:
|
1. |
单击 Cluster Database Instance 链接。 |
|
| 2. |
单击 Performance 选项卡。 |
|
| 3. |
向下滚动至 Sessions:Waiting and Working 图表。等待一分钟,观察用户 I/O 如何减少。 |
|
在本教程中,您学习了如何执行下列任务:
| 检查 Database Wait 类 的 Database Waits 和 Top SQL | ||
| 利用 SQL Tuning Advisor 调整 SQL 语句 | ||
| 查看 SQL 语句的 SQL 执行细节 | ||
| 要了解关于 Oracle 数据库 10g 的更多信息,请参考 OTN 网站上的其他 OBE。 | ||
| 有关本 OBE 教程的问题,请在 OBE Discussion Forum 上发布查询。 | ||