The DBMS_AUTO_SQLTUNE
package is the interface for managing the Automatic SQL Tuning task. Unlike DBMS_SQLTUNE
, the DBMS_AUTO_SQLTUNE
package requires the DBA
role.
Note:
This functionality is available starting with Oracle Database 11gMay 22, 2018 This is all done with trial and error, cross checking a working 12c database and a lot of common sence. BACKUP FIRST! It also includes ‘recreating’ the ‘root object ID’ for ‘SYSAUTOSQLTUNINGTASK’ which I found also missing. SYSAUTOSQLTUNINGTASK is the default name of the Automatic SQL Tuning task. You can use this query DBAADVISORLOG to check the execution time of the same. You can also use Enterprise Manager to manage the features regarding Automatic SQL Tuning.
Release 2 (11.2.0.2).The chapter contains the following topics:
Overview
Security Model
Using DBMS_AUTO_SQLTUNE
Overview
The DBMS_AUTO_SQLTUNE
package is the interface to SQL Tuning Advisor (DBMS_SQLTUNE
) when run within the Autotask framework. The database creates the automated system task SYS_AUTO_SQL_TUNING_TASK
as part of the catalog scripts. This task automatically chooses a set of high-load SQL from AWR and runs the SQL Tuning Advisor on this SQL. The automated task performs the same comprehensive analysis as any other SQL Tuning task.
The automated task tests any SQL profiles it finds by executing both the old and new query plans. Automatic SQL Tuning differs from manual SQL tuning in one important way. If automatic implementation of SQL profiles is enabled (the default is disabled), then the database implements any SQL profiles that promise a great performance benefit. The implementation occurs at tuning time so that the database can immediately benefit from the new plan. You can enable or disable automatic implementation by using the SET_AUTO_TUNING_TASK_PARAMETER
API to set the ACCEPT_SQL_PROFILES
parameter.
In each maintenance window, the automated tuning task stores its results as a new execution. Each execution result has the same task name but a different execution name. Query the DBA_ADVISOR_EXECUTIONS
view for information about task executions. Use the REPORT_AUTO_TUNING_TASK Function to view reports that span multiple executions.
Security Model
This package is available to users with the DBA
role. For other users, you must grant the EXECUTE
privilege on the package explicitly. Note that the EXECUTE_AUTO_TUNING_TASK
procedure is an exception: only SYS
can invoke it.
Users can call APIs in this package to control how the automatic tuning task behaves when it runs, such as enabling automatic SQL profile creation and configuring the total and per-SQL time limits under which the task runs. Because these settings affect the overall performance of the database, it may not be appropriate for all users with the ADVISOR
privilege to have access to this package.
Summary of DBMS_AUTO_SQLTUNE Subprograms
Table 28-1 DBMS_AUTO_SQLTUNE Package Subprograms
Subprogram | Description |
---|---|
Executes the Automatic SQL Tuning task immediately ( | |
Displays a text report of the automatic tuning task's history | |
Changes a task parameter value for the daily automatic runs |
EXECUTE_AUTO_TUNING_TASK Function & Procedure
This function and procedure executes the Automatic SQL Tuning task (SYS_AUTO_SQL_TUNING_TASK
). Both the function and the procedure run in the context of a new task execution. The difference is that the function returns that new execution name. Note that only SYS
can invoke this subprogram.
Syntax
Parameters
Table 28-2 EXECUTE_TUNING_TASK Function & Procedure Parameters
Parameter | Description |
---|---|
| A name to qualify and identify an execution. If not specified, it is generated by the advisor and returned by function. |
| List of parameters (name, value) for the specified execution. The execution parameters have effect only on the execution for which they are specified. They override the values for the parameters stored in the task (set through the SET_AUTO_TUNING_TASK_PARAMETER Procedures). |
| A 256-length string describing the execution |
Usage Notes
A tuning task can be executed multiple times without having to reset it.
Examples
REPORT_AUTO_TUNING_TASK Function
This procedure displays the results of an Automatic SQL Tuning task.
Syntax
Parameters
Table 28-3 REPORT_TUNING_TASK Function Parameters
Parameter | Description |
---|---|
| Name of the beginning task execution to use. If |
| Name of the ending task execution to use. If |
| Type of the report to produce. Possible values are |
| Level of detail in the report:
|
| Section of the report to include:
|
| Advisor framework object id that represents a single statement to restrict reporting to. |
| Maximum number of SQL statements to show in the report |
Return Values
A CLOB
containing the desired report.
Examples
SET_AUTO_TUNING_TASK_PARAMETER Procedures
This procedure updates the value of a SQL tuning parameter of type VARCHAR2
or NUMBER
as used for the reserved auto tuning task, SYS_AUTO_SQL_TUNING_TASK
.
Syntax
Parameters
Table 28-4 SET_AUTO_TUNING_TASK_PARAMETER Procedure Parameters
Parameter | Description |
---|---|
| Name of the parameter to set. The possible tuning parameters that can be set by this procedure using the parameter in the form
The following parameters are supported for the automatic tuning task only:
|
| New value of the specified parameter |
The DBMS_AUTO_SQLTUNE
package is the interface for managing the Automatic SQL Tuning task. Unlike DBMS_SQLTUNE
, the DBMS_AUTO_SQLTUNE
package requires the DBA
role.
The chapter contains the following topics:
Overview
Security Model
Using DBMS_AUTO_SQLTUNE
Overview
The DBMS_AUTO_SQLTUNE
package is the interface to SQL Tuning Advisor (DBMS_SQLTUNE
) when run within the Autotask framework. The database creates the automated system task SYS_AUTO_SQL_TUNING_TASK
as part of the catalog scripts. This task automatically chooses a set of high-load SQL from AWR and runs the SQL Tuning Advisor on this SQL. The automated task performs the same comprehensive analysis as any other SQL Tuning task.
The automated task tests any SQL profiles it finds by executing both the old and new query plans. Automatic SQL Tuning differs from manual SQL tuning in one important way. If automatic implementation of SQL profiles is enabled (the default is disabled), then the database implements any SQL profiles that promise a great performance benefit. The implementation occurs at tuning time so that the database can immediately benefit from the new plan. You can enable or disable automatic implementation by using the SET_AUTO_TUNING_TASK_PARAMETER
API to set the ACCEPT_SQL_PROFILES
parameter.
In each maintenance window, the automated tuning task stores its results as a new execution. Each execution result has the same task name but a different execution name. Query the DBA_ADVISOR_EXECUTIONS
view for information about task executions. Use the REPORT_AUTO_TUNING_TASK Function to view reports that span multiple executions.
Security Model
This package is available to users with the DBA
role. For other users, you must grant the EXECUTE
privilege on the package explicitly. Note that the EXECUTE_AUTO_TUNING_TASK
procedure is an exception: only SYS
can invoke it.
Users can call APIs in this package to control how the automatic tuning task behaves when it runs, such as enabling automatic SQL profile creation and configuring the total and per-SQL time limits under which the task runs. Because these settings affect the overall performance of the database, it may not be appropriate for all users with the ADVISOR
privilege to have access to this package.
Summary of DBMS_AUTO_SQLTUNE Subprograms
Table 30-1 DBMS_AUTO_SQLTUNE Package Subprograms
Subprogram | Description |
---|---|
Executes the Automatic SQL Tuning task immediately ( | |
Displays a text report of the automatic tuning task's history | |
Changes a task parameter value for the daily automatic runs |
EXECUTE_AUTO_TUNING_TASK Function & Procedure
This function and procedure executes the Automatic SQL Tuning task (SYS_AUTO_SQL_TUNING_TASK
). Both the function and the procedure run in the context of a new task execution. The difference is that the function returns that new execution name. Note that only SYS
can invoke this subprogram.
Parameters
Sys_auto_sql_tuning_task 12c Battery
Table 30-2 EXECUTE_TUNING_TASK Function & Procedure Parameters
Parameter | Description |
---|---|
| A name to qualify and identify an execution. If not specified, it is generated by the advisor and returned by function. |
| List of parameters (name, value) for the specified execution. The execution parameters have effect only on the execution for which they are specified. They override the values for the parameters stored in the task (set through the SET_AUTO_TUNING_TASK_PARAMETER Procedures). |
| A 256-length string describing the execution |
Usage Notes
A tuning task can be executed multiple times without having to reset it.
REPORT_AUTO_TUNING_TASK Function
This procedure displays the results of an Automatic SQL Tuning task.
Parameters
Table 30-3 REPORT_TUNING_TASK Function Parameters
Parameter | Description |
---|---|
| Name of the beginning task execution to use. If |
| Name of the ending task execution to use. If |
| Type of the report to produce. Possible values are |
| Level of detail in the report:
|
| Section of the report to include:
|
| Advisor framework object id that represents a single statement to restrict reporting to. |
| Maximum number of SQL statements to show in the report |
Return Values
A CLOB
containing the desired report.
SET_AUTO_TUNING_TASK_PARAMETER Procedures
Disable Sys_auto_sql_tuning_task 12c
This procedure updates the value of a SQL tuning parameter of type VARCHAR2
or NUMBER
as used for the reserved auto tuning task, SYS_AUTO_SQL_TUNING_TASK
.
Parameters
Table 30-4 SET_AUTO_TUNING_TASK_PARAMETER Procedure Parameters
Parameter | Description |
---|---|
| Name of the parameter to set. The possible tuning parameters that can be set by this procedure using the parameter in the form
The following parameters are supported for the automatic tuning task only:
|
| New value of the specified parameter |