本教程将向您介绍如何利用自动 SQL 调优功能自动调优高负载 SQL 语句从而获益。
大约 20 分钟
本教程包括下列主题:
| 概述 | |
| 先决条件 | |
| 使用自动 SQL 调优功能 | |
| 总结 |
将光标置于此图标上可以加载和查看本教程的所有屏幕截图。
(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图将其隐藏。
Oracle Database 11g 进一步自动化 SQL 调优过程:它识别有问题的 SQL 语句,对这些语句运行 SQL Tuning Advisor,然后实施生成的 SQL 配置文件建议对这些语句进行调优,所有这些无需用户参与。
开始本教程之前,您应该:
| 1. | 安装 Oracle Database 11g。 |
|
| 2. | 下载 ast.zip 文件并将其解压缩至您的工作目录,然后转到该工作目录。 |
|
自动 SQL 调优功能通过一个名为“Automatic SQL Tuning”的新任务(默认情况下,每天晚上运行)使用 AUTOTASK 框架。下面简要描述一下 Oracle Database 11g 中自动 SQL 调优的过程:
下面的例子通过在您执行了某些高负载 SQL 语句后强制运行 Automatic SQL Tuning 任务来说明上述行为。强制执行 Automatic SQL Tuning 只是因为您不希望等到晚上才运行该任务。要强制其执行,只需在执行本 OBE 时打开维护窗口。
执行以下步骤,了解 Automatic SQL Tuning 的用法:
| 1. |
在 Enterprise Manager Database Control 下,以 SYS 用户身份连接。
|
|
| 2. |
进入 Home 页面后,单击 Server 选项卡。在 Server 子页面中,单击 Automated Maintenance Tasks 链接。
|
|
| 3. |
在 Automated Maintenance Tasks 页面中,单击 Configure 按钮。在 Automated Tasks Configuration 页面中,单击 Automatic SQL Tuning 行前面的 Configure 按钮。
|
|
| 4. |
在 Automatic SQL Tuning Settings 页面中,为 Automatic Implementation of SQL Profiles 选择 Yes。默认情况下,自动 SQL 配置文件实施处于关闭状态,因为它需要调优包许可。完成以上操作后,单击 Apply。然后,单击路径式导航栏中的 Automated Maintenance Tasks Configuration 导航项,然后再单击 Automated Maintenance Tasks 导航项。
|
|
| 5. |
打开一个终端窗口,以 oracle 用户身份连接。转至 ast.zip 文件解压缩到的目录。执行 ast_setup.sh 脚本。该脚本创建一个用于本 OBE 的新模式。该脚本还将清除 Automatic SQL Tuning 以前的执行。 ./ast_setup.sh
|
|
| 6. |
在同一终端窗口中,执行 run_workload_stream.sh 脚本。该脚本将多次执行一个自发呈现出低效率的 SQL 语句。注意完成执行所用的时间。 ./run_workload_stream.sh
|
|
| 7. |
在同一终端窗口中,执行 run_ast.sh 脚本。该脚本将强制维护窗口打开以触发 Automatic SQL Tuning 任务执行,从而自动调优高负载 SQL 语句。这样做是为了避免等到晚上维护窗口才自动打开。在实际操作中,您不必强制维护窗口打开。 注意:此脚本的执行可能至少需要几分钟。 ./run_ast.sh
|
|
| 8. |
仍然在该终端窗口中,重新执行 run_workload_stream.sh 脚本。该脚本将多次执行一个自发呈现出低效率的 SQL 语句。注意完成执行所用的时间。与上次执行相比,此次执行的时间会缩短。这是由于 Automatic SQL Tuning 对此特定语句进行了调优,自动实施并使用了一个提供更好计划的配置文件。 ./run_workload_stream.sh
|
|
| 9. |
在您的终端会话中,使用以下命令在 SQL*Plus 下以 ast 用户身份(口令为 ast)连接,强制创建一个 AWR 快照: exec dbms_workload_repository.create_snapshot; 完成以上操作后,退出 SQL*Plus 会话。
|
|
| 10. |
返回 Enterprise Manager Automated Maintenance Tasks 页面,单击 Automatic SQL Tuning 链接。
|
|
| 11. |
这将转至 Automatic SQL Tuning Results Summary 页面,您可以在其中看到在上一个会话期间仅调优了一条 SQL 语句并提供了两点建议:自动实施了一个 SQL 配置文件,还有一个索引创建却只是建议尚未实施。该页面还将报告 Profile Effect Statistics(配置文件效果统计信息)。很明显,建议的配置文件很有帮助。在该页面中,单击 View Report 按钮。
|
|
| 12. |
在 Automatic SQL Tuning Result Details 页面中,您可以查看所有被认为进行了自动调优的语句。注意,即使没有启用自动 SQL 配置文件实施,您仍然可以获得有关建议的 SQL 配置文件的信息。在此例中,自动实施了配置文件。选择与 AST 模式对应的 SQL 语句,单击 View Recommendations 按钮。
|
|
| 13. |
在 Recommendations for SQL ID 页面上,您可以查看对应的 SQL 语句的完整文本。选择与 SQL 配置文件对应的建议,单击相关的 Compare Explain Plans 图标。您可以查看SQL 配置文件实施前后生成的不同计划。完成后,在浏览器中单击 Back 按钮返回到 Recommendations 页面。
|
|
| 14. |
返回 Recommendations For SQL ID 页面,单击与调优后的语句相对应的 SQL 文本。
|
|
| 15. |
在 SQL Details 的 Tuning History 子页面中,您可以清楚地看到该语句已由 Automatic SQL Tuning 任务调优。在 Plan Control 子页面中,注意 SQL 配置文件已自动实施。
|
|
| 16. |
但是,您仍然可以使用 PL/SQL 检索同一信息。在终端会话中,执行 get_task_report.sh 脚本。该脚本将显示以前使用 PL/SQL 进行分析的结果。 ./get_task_report.sh
|
|
在本教程中,您学习了如何使用 SQL Access Advisor。