利用自动 SQL 调整功能来改进 SQL 语句调整

本教程将向您介绍如何利用自动 SQL 调整功能来自动调整高负载 SQL 语句而受益。

大约 20 分钟

主题

本教程包括下列主题:

将鼠标置于此图标上可以加载和查看本教程的所有屏幕截图。 (警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)

注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。

概述

Oracle 数据库 11g 通过识别有问题的 SQL 语句、对其运行 SQL Tuning Advisor 并实施生成的 SQL 配置文件建议以调整语句,而无需用户参与,进一步自动化 SQL 调整过程。

返回主题列表

开始本教程之前,您应该:

1.

安装 Oracle 数据库 11g。

2.

下载 ast.zip 文件并将其解压缩到您的工作目录(即 wkdir),然后导航到您的工作目录。

修改所有 .sh 脚本中的目录,使其指向放置相应文件的目录。

返回主题列表

使用自动 SQL 调整功能

自动 SQL 调整功能通过一个名为“Automatic SQL Tuning”的新任务(默认情况下,每天晚上运行)使用 AUTOTASK 框架。下面是 Oracle 数据库 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 语句。注意完成执行所用的时间。在本例中,执行该脚本用了大约 5 秒钟的时间。这是因为 Automatic SQL Tuning 调整了这条特定的语句,自动实施了提供更好计划的配置文件。

./run_workload_stream.sh

9.

在您的终端会话中,在 SQL*Plus 下以 ast(口令 ast)用户身份连接,强制创建一个 AWR 快照。完成以上操作后,退出 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 配置文件实施前后生成的不同计划。完成以上操作后,单击 SQL ID 路径式导航链接。

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。

返回主题列表

将鼠标置于该图标上可以隐藏所有的屏幕截图。