您可以自动或按需运行SQL Tuning Advisor。您也可以在本地或远程数据库上运行顾问程序。
本节包含以下主题:
- 自动和按需SQL调整将 SQL Tuning Advisor配置为使用
DBMS_AUTO_SQLTUNE或按需自动运行DBMS_SQLTUNE。 - 本地和远程SQL调整 SQL Tuning Advisor可以分析本地数据库或远程数据库上的工作负载。
24.1.3.1自动和按需SQL调整
将SQL Tuning Advisor配置为使用DBMS_AUTO_SQLTUNE或按需自动运行DBMS_SQLTUNE。
调用方法不同,如下所示:
- 自动地
您可以将SQL Tuning Advisor配置为在每晚系统维护时段运行。由运行时
AUTOTASK,顾问程序被称为自动SQL调整顾问,并执行自动SQL调整。 - 一经请求
在点播SQL调优,你手动调用SQL优化指导诊断和修复SQL相关的性能问题后,他们已经发现了。Oracle企业管理器云控制(Cloud Control)是按需调整SQL的首选界面,但是您也可以使用
DBMS_SQLTUNEPL / SQL包。
SQL Tuning Advisor使用自动优化优化器执行其分析。此优化是“自动的”,因为优化器将分析SQL而不是用户。不要用自动SQL调整,其中本文所涉及混淆自动调整优化仅由自动SQL Tuning任务执行的工作。
也可以看看:
- “ 按需运行SQL Tuning Advisor ”
- “ 管理自动SQL调整任务 ”
- Oracle Database PL / SQL软件包和类型参考以了解
DBMS_SQLTUNE
24.1.3.2本地和远程SQL调整
SQL Tuning Advisor可以分析本地数据库或远程数据库上的工作负载。
在最简单的情况下,SQL Tuning Advisor接受输入,执行并将结果存储在单个数据库中。本地模式适用于可接受SQL Tuning Advisor执行的性能开销的数据库。
在远程调优中,启动调优任务的数据库与执行调优过程或存储结果的数据库不同。例如,备用数据库可以具有自己的查询工作量,其中一些工作量可能需要调整。您可以在备用数据库上发出SQL Tuning Advisor语句。备用数据库到主数据库的链接允许DBMS_SQLTUNE向主数据库写入数据和从主数据库读取数据。该链接是必需的,因为备用数据库是只读的,无法写入SQL调整数据。
下图说明了用于调整主数据库上的备用数据库工作负载的常规设置。此技术需要备用数据库到主数据库的链接。
图24-10在主数据库上调整备用工作负载
要调整主数据库上的备用工作负载,请database_link_to在DBMS_SQLTUNE过程中指定参数。默认情况下,该database_link_to参数为null,这意味着调整是本地的。
该database_link_to参数必须指定一个专用数据库链接。该链接必须SYS由默认特权用户拥有并由默认特权用户访问SYS$UMF。以下示例语句创建一个名为的链接lnk_to_pri:
CREATE DATABASE LINK lnk_to_pri CONNECT TO SYS$UMF IDENTIFIED BY password USING 'inst1';下表说明了典型的远程调整会话。您在备用数据库上发出所有语句。DBMS_SQLTUNE使用数据库链接既可以从主数据库获取数据,又可以将数据存储在主数据库中。
表24-1使用到主数据库的数据库链接调整备用数据库的工作负载
| 步骤 | 备用数据库上发布的声明 | 结果 |
|---|---|---|
| 1 | CREATE_TUNING_TASK | DBMS_SQLTUNE 使用备用数据库到主数据库的链接在主数据库中创建任务数据。 |
| 2 | EXECUTE_TUNING_TASK | DBMS_SQLTUNE使用数据库链接读取存储在主数据库中的SQL Tuning Advisor任务数据。调整分析在备用数据库上进行,但是DBMS_SQLTUNE将结果远程写入主数据库。 |
| 3 | REPORT_TUNING_TASK | DBMS_SQLTUNE 使用数据库链接从主数据库读取SQL Tuning Advisor报告数据,然后在备用数据库上本地构建报告。 |
| 4 | ACCEPT_SQL_PROFILE | DBMS_SQLTUNE 使用数据库链接将SQL配置文件数据远程写入主数据库。 |
也可以看看:
- “ 配置SQL调整任务 ”
- Oracle Data Guard概念和管理,以学习如何在Data Guard环境中执行远程调优
- Oracle Database PL / SQL软件包和类型参考以了解更多信息
DBMS_SQLTUNE.CREATE_TUNING_TASK




