Automatic SQL Tuning in Oracle Database 11g
Automatic SQL Tuning in Oracle Database 11g Release 1
As part of Automatic SQL Tuning, Oracle 11g automatically runs the SQL Tuning Advisor against high impact SQL statements during maintenance windows. This process involves the following steps:
- AWR statistics are used to compile an ordered list of the SQL statements with the greatest performance impact on the system, where the impact is the sum of the CPU and I/O times for the statement during the past week. The list excludes statements that are inherently less tunable, such as recently (within a month) tuned recursive statements, parallel queries, DML, DDL and SQL statements whose performance problems are caused by concurrency issues.
- The SQL tuning advisor is run against each statement in turn. The outcome may include both SQL profiles and other recommendations.
- Suggested SQL profiles are performance tested, and those that result in at least a threefold improvement are accepted if the ACCEPT_SQL_PROFILES parameter is set to TRUE, or reported if it is set to FALSE.
- The accepted SQL profiles are optionally implemented . Several factors many prevent SQL profiles from being implemented automatically, including stale optimizer statistics of dependent objects. The TYPE column of the DBA_SQL_PROFILES view indicates if SQL profiles are created manually (MANUAL) or automatically (AUTO-TUNE).
The ENABLE and DISABLE procedures of the DBMS_AUTO_TASK_ADMIN package control whether automatic SQL tuning is included in the automated maintenance tasks.
-- Enable BEGIN DBMS_AUTO_TASK_ADMIN.enable( client_name => 'sql tuning advisor', operation => NULL, window_name => NULL); END; / -- Disable BEGIN DBMS_AUTO_TASK_ADMIN.disable( client_name => 'sql tuning advisor', operation => NULL, window_name => NULL); END; /
It is also indirectly disabled by setting the STATISTICS_LEVEL parameter to BASIC, as this stops automatic statistics gathering by the AWR.
The SET_TUNING_TASK_PARAMETER procedure of the DBMS_SQLTUNE package controls the behavior. of the SQL tuning advisor. The parameters specifically for the automatic runs include:
- ACCEPT_SQL_PROFILES - Automatically accept SQL profiles (default FALSE).
- MAX_SQL_PROFILES_PER_EXEC - The maximum number of SQL profiles automatically implemented per run (default 20).
- MAX_AUTO_SQL_PROFILES - The maximum number of automatic SQL profiles allowed on the system (default 10000).
The current parameter values are displayed using the %_ADVISOR_PARAMETERS views.
COLUMN parameter_value FORMAT A30 SELECT parameter_name, parameter_value FROM dba_advisor_parameters WHERE task_name = 'SYS_AUTO_SQL_TUNING_TASK' AND parameter_name IN ('ACCEPT_SQL_PROFILES', 'MAX_SQL_PROFILES_PER_EXEC', 'MAX_AUTO_SQL_PROFILES'); PARAMETER_NAME PARAMETER_VALUE ------------------------------ ------------------------------ ACCEPT_SQL_PROFILES FALSE MAX_SQL_PROFILES_PER_EXEC 20 MAX_AUTO_SQL_PROFILES 10000 3 rows selected. SQL>
The following code shows how the SET_TUNING_TASK_PARAMETER procedure is used to turn on acceptance of automatically generated SQL profiles.
BEGIN DBMS_SQLTUNE.set_tuning_task_parameter( task_name => 'SYS_AUTO_SQL_TUNING_TASK', parameter => 'ACCEPT_SQL_PROFILES', value => 'TRUE'); END; /
The REPORT_AUTO_TUNING_TASK function of the DBMS_SQLTUNE package returns a CLOB containing a report from the specified automatic tuning task. Setting the BEGIN_EXEC and END_EXEC parameters to NULL produces a report from the most recent execution.
VARIABLE l_report CLOB; BEGIN :l_report := DBMS_SQLTUNE.report_auto_tuning_task( begin_exec => NULL, end_exec => NULL, type => DBMS_SQLTUNE.type_text, -- 'TEXT' level => DBMS_SQLTUNE.level_typical, -- 'TYPICAL' section => DBMS_SQLTUNE.section_all, -- 'ALL' object_id => NULL, result_limit => NULL); END; / SET LONG 1000000 PRINT :l_report L_REPORT -------------------------------------------------------------------------------- GENERAL INFORMATION SECTION ------------------------------------------------------------------------------- Tuning Task Name : SYS_AUTO_SQL_TUNING_TASK Tuning Task Owner : SYS Workload Type : Automatic High-Load SQL Workload Execution Count : 31 Current Execution : EXEC_1_25 Execution Type : TUNE SQL Scope : COMPREHENSIVE Global Time Limit(seconds) : 3600 Per-SQL Time Limit(seconds) : 1200 Completion Status : COMPLETED Started at : 01/16/2008 22:00:06 Completed at : 01/16/2008 22:00:46 Number of Candidate SQLs : 0 Cumulative Elapsed Time of SQL (s) : 0 ------------------------------------------------------------------------------- SQL>
As you can see from the above report, this was run against a very quiet system, so there were no candidate SQL statements to process. If this were run against a more active system, you might expect the report to contain the following sections:
- General information - High-level information about the SQL tuning task.
- Summary - A summary of the SQL statements tuned during the task, including the estimated benefit associated with the tuning operation.
- Tuning finding - Information about findings, acceptance of the profile, implementation of the profile, and detailed execution statistics for each analyzed statement.
- Explain plans - The old and new execution plans for each analyzed statement.
- Errors - Any errors encountered during the task.
For more information see:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/195110/viewspace-764493/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Automatic SQL Tuning and SQL ProfilesSQL
- Automatic SQL Tuning 原理SQL
- 11g alert log中的automatic SQL Tuning及Resource Manager planSQL
- 11g Active Standby Database Automatic Block Corruption RepairDatabaseBloCAI
- Automatic Diagnostic Repository (ADR) in Oracle Database 11g Release 1 (ADRCI)OracleDatabase
- Oracle 10g Automatic Undo Retention Tuning (zt)Oracle 10g
- Oracle OCP 1Z0 053 Q118(Automatic SQL Tuning Task)OracleSQL
- Oracle SQL Perfomance TuningOracleSQL
- Oracle OCP 1Z0 053 Q403(Automatic SQL Tuning Advisor task)OracleSQL
- Oracle 11G 新特性 Automatic block repairOracleBloCAI
- 【OCM】Oracle Database 10g: Performance Tuning(一)OracleDatabaseORM
- 【OCM】Oracle Database 10g: Performance Tuning(二)OracleDatabaseORM
- 【OCM】Oracle Database 10g: Performance Tuning(三)OracleDatabaseORM
- 【OCM】Oracle Database 10g: Performance Tuning(四)OracleDatabaseORM
- Oracle 11G Duplicate DatabaseOracleDatabase
- Oracle 11g DG新特性--Automatic block repairOracleBloCAI
- oracle sql tuning 14 --10046OracleSQL
- ORACLE SQL Tuning Health-Check(SQLHC)OracleSQL
- 10g,11g sql auto tuning 測試SQL
- Oracle Database 11g Launch WebcastOracleDatabaseWebAST
- ADDM: Automatic Database Diagnostic MonitorDatabase
- Oracle SQL優化之sql tuning advisorOracleSQL優化
- oracle實用sql(3)--sql tuning advisorOracleSQL
- Automatic Diagnostic Repository (ADR) with Oracle Net for 11gOracle
- Migrating Oracle10g Database to Automatic Storage management (ASM)OracleDatabaseASM
- oracle sql tuning 2--調優工具OracleSQL
- sql tuningSQL
- Oracle 11g Database Replay 實驗OracleDatabase
- Oracle 11g Rman Active database duplicateOracleDatabase
- Oracle Database 11g索引技術OracleDatabase索引
- Cursor Sharing in Oracle Database 11gOracleDatabase
- [Oracle] oracle 11g database install(linux)OracleDatabaseLinux
- oracle 11g Oracle Database Vault 的配置方法OracleDatabase
- Oracle SQL優化之sql tuning advisor(STA)OracleSQL優化
- How to use the Automatic Database Diagnostic Monitor(一)Database
- 在紅帽Linux上部署Automatic System TuningLinux
- sql tuning set/sql tuning advisor(待完善)SQL
- ORACLE SQL TUNING ADVISOR 使用方法OracleSQL