您可以使用Cloud Control或命令行配置自动SQL调整任务。
本节包含以下主题:
- 使用Cloud Control配置自动SQL调整任务您可以使用Cloud Control启用和禁用所有自动维护任务,包括Automatic SQL Tuning任务。您必须以PL / SQL软件包
SYS的EXECUTE身份执行操作或具有该特权DBMS_AUTO_SQLTUNE。 - 配置自动SQL调整任务使用命令行 的
DBMS_AUTO_SQLTUNE包,您可以通过指定任务参数配置自动SQL调优SET_AUTO_TUNING_TASK_PARAMETER过程。
24.2.3.1使用云控制配置自动SQL优化任务
您可以使用Cloud Control启用和禁用所有自动维护任务,包括“自动SQL调整”任务。您必须以PL / SQL软件包SYS的EXECUTE身份执行操作或具有该特权DBMS_AUTO_SQLTUNE。
要使用Cloud Control配置自动SQL调整任务,请执行以下操作:
- 使用适当的凭据登录到Cloud Control。
- 在“ 目标”菜单下,选择“ 数据库”。
- 在数据库目标列表中,选择要管理的Oracle数据库实例的目标。
- 如果提示您输入数据库凭据,则输入您打算执行的任务所需的最低凭据。
- 在管理菜单上,单击Oracle Scheduler,然后单击自动维护任务。
出现“自动维护任务”页面。
此页面显示预定义的任务。您可以通过单击相应的链接来访问每个任务,以获取有关任务本身的更多信息。
- 单击自动SQL调整。
将显示“自动SQL调整结果摘要”页面。
- 在“任务设置”下,单击“ 自动SQL调整”()旁边的“ 配置”
SYS_AUTO_SQL_TUNING_TASK。出现“自动维护任务配置”页面。
- 在“任务设置”下,单击“ 自动SQL调整”旁边的“ 配置”。
将显示“自动SQL调整设置”页面。
- 进行所需的更改,然后单击Apply。
24.2.3.2使用命令行配置自动SQL优化任务
该DBMS_AUTO_SQLTUNE软件包使您可以通过使用SET_AUTO_TUNING_TASK_PARAMETER过程指定任务参数来配置SQL自动调整。
由于任务由拥有SYS,因此只能SYS设置任务参数。
该ACCEPT_SQL_PROFILE调整任务参数指定是否自动执行SQL配置文件(true)或需要用户干预(false)。缺省值为AUTO,这表示true是否至少有一个SQL语句与一个SQL概要文件一起存在,并且false不满足此条件。
注意:
启用自动实施后,顾问程序仅实施建议以创建SQL配置文件。创建新索引,收集优化器统计信息以及创建SQL计划基准之类的建议不会自动实现。
假设条件
本教程假定以下内容:
- 您希望数据库自动实现SQL概要文件,但是每次执行不超过50个SQL概要文件,并且数据库上总共不超过50个概要文件。
- 您希望任务在每次执行1200秒后超时。
设置自动SQL调整任务参数:
- 使用适当的权限将SQL * Plus连接到数据库,然后选择查询当前任务设置。
例如,使用管理员权限将SQL * Plus连接到数据库,然后执行以下查询:
COL PARAMETER_NAME FORMAT a25 COL VALUE FORMAT a10 SELECT PARAMETER_NAME, PARAMETER_VALUE AS "VALUE" FROM DBA_ADVISOR_PARAMETERS WHERE ( (TASK_NAME = 'SYS_AUTO_SQL_TUNING_TASK') AND ( (PARAMETER_NAME LIKE '%PROFILE%') OR (PARAMETER_NAME = 'LOCAL_TIME_LIMIT') OR (PARAMETER_NAME = 'EXECUTION_DAYS_TO_EXPIRE') ) );示例输出如下所示:
PARAMETER_NAME VALUE ------------------------- ---------- EXECUTION_DAYS_TO_EXPIRE 30 LOCAL_TIME_LIMIT 1000 ACCEPT_SQL_PROFILES FALSE MAX_SQL_PROFILES_PER_EXEC 20 MAX_AUTO_SQL_PROFILES 10000 - 使用以下形式的PL / SQL代码设置参数:
BEGIN DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER ( task_name => 'SYS_AUTO_SQL_TUNING_TASK' , parameter => parameter_name , value => value ); END; /
示例24-3设置SQL调整任务参数
以下PL / SQL块将时间限制设置为20分钟,并且还自动实现SQL配置文件并为这些配置文件设置限制:
BEGIN
DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER('SYS_AUTO_SQL_TUNING_TASK',
'LOCAL_TIME_LIMIT', 1200);
DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER('SYS_AUTO_SQL_TUNING_TASK',
'ACCEPT_SQL_PROFILES', 'true');
DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER('SYS_AUTO_SQL_TUNING_TASK',
'MAX_SQL_PROFILES_PER_EXEC', 50);
DBMS_SQLTUNE.SET_TUNING_TASK_PARAMETER('SYS_AUTO_SQL_TUNING_TASK',
'MAX_AUTO_SQL_PROFILES', 10002);
END;
/也可以看看:
《 Oracle数据库PL / SQL软件包和类型参考》,以获得有关DBMS_AUTO_SQLTUNE




