先给监控用户授权

 grant advisor to  DBA_MONITER;

可以在PL/SQL DEVELOPER 命令窗口执行

SQL_ID方式

DECLARE

my_task_name VARCHAR2(30);

BEGIN

my_task_name :=DBMS_SQLTUNE.CREATE_TUNING_TASK(

sql_id => '8gb2jup02tzt3',

scope => 'COMPREHENSIVE',

time_limit => 60,

task_name => 'test_sql_tuning_task2',

description => 'Task to tune a query');

DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'test_sql_tuning_task2');

END;

/ PL/SQL proceduresuccessfully completed

SQL>  select task_name,ADVISOR_NAME,STATUS fromuser_advisor_tasks;

TASK_NAME                      ADVISOR_NAME                   STATUS

------------------------------------------------------------ -----------

TASK_8352                      ADDM                           COMPLETED

TASK_8836                      ADDM                           COMPLETED

TASK_8671                      ADDM                           COMPLETED

TASK_8560                      ADDM                           COMPLETED

TASK_8429                      ADDM                           COMPLETED

TASK_8481                      ADDM                           COMPLETED

TASK_8507                      ADDM                           COMPLETED

TASK_8645                      ADDM                           COMPLETED

TASK_8810                      ADDM                           COMPLETED

TASK_8455                      ADDM                           COMPLETED

TASK_8370                      ADDM                           COMPLETED

TASK_8723                      ADDM                           COMPLETED

TASK_8351                      ADDM                           COMPLETED

TASK_8400                      ADDM                           COMPLETED

TASK_8780                      ADDM                           COMPLETED

TASK_8619                      ADDM                           COMPLETED

TASK_8914                      ADDM                           COMPLETED

TASK_8590                      ADDM                           COMPLETED

TASK_8697                      ADDM                           COMPLETED

TASK_8862                      ADDM                           COMPLETED

TASK_NAME                      ADVISOR_NAME                   STATUS

------------------------------------------------------------ -----------

TASK_8750                      ADDM                           COMPLETED

test_sql_tuning_task1          SQL Tuning Advisor             COMPLETED

test_sql_tuning_task2          SQL Tuning Advisor             COMPLETED

TASK_8888                      ADDM                           COMPLETED

TASK_8533                      ADDM                           COMPLETED

25rows selected

在PL/SQL DEVELOPER 查询窗口执行  执行结果显示出 CLOB

select   dbms_sqltune.report_tuning_task('test_sql_tuning_task2') from dual;

执行结果  CSDN格式没对齐 实际上是很好的

GENERAL INFORMATION SECTION
-------------------------------------------------------------------------------
Tuning Task Name   : test_sql_tuning_task2
Tuning Task Owner  : DBA_MONITER
Workload Type      : Single SQL Statement
Scope              : COMPREHENSIVE
Time Limit(seconds): 60
Completion Status  : COMPLETED
Started at         : 06/03/2014 11:04:43
Completed at       : 06/03/2014 11:04:58

-------------------------------------------------------------------------------
Schema Name: CCPS
SQL ID     : 8gb2jup02tzt3
SQL Text   : select trd.tr_no,trd.tr_reference,trd.tr_status,trd.tr_paystartti
             me,trd.tr_datetime,trd.tr_bankcurrency,trd.tr_bankamout,trd.tr_ch
             a_code,ch.cha_merno,ch.cha_vpc_accesscode,ch.cha_secure_secret
             from ccps_traderecord trd  left join ccps_channel ch on
             trd.tr_cha_code = ch.cha_code where trd.TR_MER_NO != :1 and
             trd.tr_checked = 0 and trd.tr_status != -2 and
             (sysdate-:2/(24*60)) >= trd.tr_datetime and
             upper(trd.tr_bank_code) in (:3,:4)  and rownum <= :5 order by 
             trd.tr_id asc

-------------------------------------------------------------------------------
FINDINGS SECTION (4 findings)  /*找到了4个优化建议*/
-------------------------------------------------------------------------------

1- SQL Profile Finding (see explain plans section below)
--------------------------------------------------------
  为此语句找到了性能更好的执行计划 2。选择以下 SQL 概要文件之一进行实施。

Recommendation (estimated benefit: 50%)
  ---------------------------------------
  - 考虑接受推荐的 SQL 概要文件。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'test_sql_tuning_task2', task_owner => 'DBA_MONITER', replace =>
            TRUE);

Validation results
  ------------------
  已对 SQL profile 进行测试, 方法为执行其计划和原始计划并测量与计划相对应的执行统计信息。如果其中一个计划运行在很短的时间内就完成,
  则另一计划可能只执行了一部分。

Original Plan  With SQL Profile  % Improved
                           -------------  ----------------  ----------
  Completion Status:            COMPLETE          COMPLETE
  Elapsed Time(us):             1046935            479043      54.24 %
  CPU Time(us):                 1046842            479427       54.2 %
  User I/O Time(us):              19275               207      98.92 %
  Buffer Gets:                   167373             83679         50 %
  Physical Read Requests:           972                15      98.45 %
  Physical Write Requests:            0                 0 
  Physical Read Bytes:         53682176            122880      99.77 %
  Physical Write Bytes:               0                 0 
  Rows Processed:                     1                 1 
  Fetches:                            1                 1 
  Executions:                         1                 1

Notes
  -----
  1. SQL profile plan 已首先执行以预热缓冲区高速缓存。
  2. the SQL profile plan 的统计信息来自第二次执行。

Recommendation (estimated benefit: 87.66%)
  ------------------------------------------
  - 考虑接受建议的 SQL 概要文件, 以便对此语句使用并行执行。
    execute dbms_sqltune.accept_sql_profile(task_name =>
            'test_sql_tuning_task2', task_owner => 'DBA_MONITER', replace =>
            TRUE, profile_type => DBMS_SQLTUNE.PX_PROFILE);

与 DOP 9 并行执行此查询会使 SQL 概要文件计划上的响应时间缩短 87.66%。但是, 启用并行执行时要付出一些代价。它将增加语句的资源消耗
  (预计为 11.04%), 这会导致系统吞吐量降低。此外, 由于在非常短的持续时间内消耗了这些资源, 因此如果没有足够可用的硬件容量,
  并发语句的响应时间将受到负面影响。

The following data shows some sampled statistics for this SQL from the past
  week and projected weekly values when parallel execution is enabled.

Past week sampled statistics for this SQL
                                 -----------------------------------------
  Number of executions                                                   0 
  Percent of total activity                                              0 
  Percent of samples with #Active Sessions > 2*CPU                       0 
  Weekly DB time (in sec)                                                0

Projected statistics with Parallel Execution
                              --------------------------------------------
  Weekly DB time (in sec)                                                0

2- Restructure SQL finding (see plan 1 in explain plans section)
----------------------------------------------------------------
  谓词 "TRD"."TR_MER_NO"<>TO_NUMBER(:B1) (在执行计划的行 ID 5 处使用) 是索引列 "TR_MER_NO"
  的不等式条件。此不等式条件使优化程序无法选择表 "OSSC"."CCPS_TRADERECORD" 的索引。

Recommendation
  --------------
  - 将谓词重写为等价型以便利用索引。

3- Restructure SQL finding (see plan 1 in explain plans section)
----------------------------------------------------------------
  谓词 "TRD"."TR_MER_NO"<>TO_NUMBER(:B1) (在执行计划的行 ID 5 处使用) 是索引列 "TR_MER_NO"
  的不等式条件。此不等式条件使优化程序无法选择表 "OSSC"."CCPS_TRADERECORD" 的索引。

Recommendation
  --------------
  - 将谓词重写为等价型以便利用索引。

4- Alternative Plan Finding
---------------------------
  通过搜索系统的实时和历史性能数据找到了此语句的某些替代执行计划。

The following table lists these plans ranked by their average elapsed time.
  See section "ALTERNATIVE PLANS SECTION" for detailed information on each
  plan.

id plan hash  last seen            elapsed (s)  origin          note            
  -- ---------- -------------------- ------------ --------------- ----------------
   1  415509470  2014-05-17/10:50:22        2.081 Cursor Cache                    
   2  280106883  2014-05-24/23:56:25        2.187 Cursor Cache                    
   3 1210540799  2014-06-02/00:48:34        2.437 Cursor Cache

Information
  -----------
  - 因为找不到原始计划的任何执行历史记录, SQL 优化指导无法确定这些执行计划中是否有一些执行计划优于原始计划。但是,
    如果您知道某个替代计划优于原始计划, 可以为该替代计划创建 SQL 计划基线。这将指示 Oracle 优化程序在将来优先于任何其他选择来选取它。
    execute dbms_sqltune.create_sql_plan_baseline(task_name =>
            'test_sql_tuning_task2', owner_name => 'DBA_MONITER',
            plan_hash_value => xxxxxxxx);

-------------------------------------------------------------------------------
EXPLAIN PLANS SECTION  /*原始的执行计划*/
-------------------------------------------------------------------------------

1- Original With Adjusted Cost
------------------------------
Plan hash value: 410215884

--------------------------------------------------------------------------------------------
| Id  | Operation               | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT        |                  |     1 |   242 | 45432   (1)| 00:09:06 |
|   1 |  SORT ORDER BY          |                  |     1 |   242 | 45432   (1)| 00:09:06 |
|*  2 |   COUNT STOPKEY         |                  |       |       |            |          |
|*  3 |    HASH JOIN RIGHT OUTER|                  |     1 |   242 | 45431   (1)| 00:09:06 |
|   4 |     TABLE ACCESS FULL   | CCPS_CHANNEL     |   193 | 14282 |     5   (0)| 00:00:01 |
|*  5 |     TABLE ACCESS FULL   | CCPS_TRADERECORD |     1 |   168 | 45426   (1)| 00:09:06 |
--------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter(ROWNUM<=:5)
   3 - access("TRD"."TR_CHA_CODE"="CH"."CHA_CODE"(+))
   5 - filter("TRD"."TR_CHECKED"=0 AND "TRD"."TR_MER_NO"<>TO_NUMBER(:1) AND 
              (UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:3) OR 
              UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:4)) AND "TRD"."TR_STATUS"<>(-2) AND 
              "TRD"."TR_DATETIME"<=SYSDATE@!-:2/1440)

2- Using SQL Profile (使用概要的执行计划)
--------------------
Plan hash value: 3313146672

---------------------------------------------------------------------------------------------------
| Id  | Operation                      | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT               |                  |     1 |   242 | 45428   (1)| 00:09:06 |
|   1 |  SORT ORDER BY                 |                  |     1 |   242 | 45428   (1)| 00:09:06 |
|*  2 |   COUNT STOPKEY                |                  |       |       |            |          |
|   3 |    NESTED LOOPS OUTER          |                  |     1 |   242 | 45427   (1)| 00:09:06 |
|*  4 |     TABLE ACCESS FULL          | CCPS_TRADERECORD |     1 |   168 | 45426   (1)| 00:09:06 |
|   5 |     TABLE ACCESS BY INDEX ROWID| CCPS_CHANNEL     |     1 |    74 |     1   (0)| 00:00:01 |
|*  6 |      INDEX UNIQUE SCAN         | PK_CCPS_CHANNEL  |     1 |       |     0   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter(ROWNUM<=:5)
   4 - filter("TRD"."TR_CHECKED"=0 AND (UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:3) OR 
              UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:4)) AND "TRD"."TR_MER_NO"<>TO_NUMBER(:1) AND 
              "TRD"."TR_STATUS"<>(-2) AND "TRD"."TR_DATETIME"<=SYSDATE@!-:2/1440)
   6 - access("TRD"."TR_CHA_CODE"="CH"."CHA_CODE"(+))

3- Using Parallel Execution (使用并行的执行计划)
---------------------------
Plan hash value: 2972040833

-----------------------------------------------------------------------------------------------------------------------------------
| Id  | Operation                         | Name             | Rows  | Bytes | Cost (%CPU)| Time     |    TQ  |IN-OUT| PQ Distrib |
-----------------------------------------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT                  |                  |     1 |   251 |  5605   (1)| 00:01:08 |        |      |            |
|   1 |  SORT ORDER BY                    |                  |     1 |   251 |  5605   (1)| 00:01:08 |        |      |            |
|*  2 |   COUNT STOPKEY                   |                  |       |       |            |          |        |      |            |
|   3 |    PX COORDINATOR                 |                  |       |       |            |          |        |      |            |
|   4 |     PX SEND QC (RANDOM)           | :TQ10000         |     1 |   251 |  5604   (1)| 00:01:08 |  Q1,00 | P->S | QC (RAND)  |
|*  5 |      COUNT STOPKEY                |                  |       |       |            |          |  Q1,00 | PCWC |            |
|   6 |       NESTED LOOPS OUTER          |                  |     1 |   251 |  5604   (1)| 00:01:08 |  Q1,00 | PCWP |            |
|   7 |        PX BLOCK ITERATOR          |                  |       |       |            |          |  Q1,00 | PCWC |            |
|*  8 |         TABLE ACCESS FULL         | CCPS_TRADERECORD |     1 |   177 |  5604   (1)| 00:01:08 |  Q1,00 | PCWP |            |
|   9 |        TABLE ACCESS BY INDEX ROWID| CCPS_CHANNEL     |     1 |    74 |     0   (0)| 00:00:01 |  Q1,00 | PCWP |            |
|* 10 |         INDEX UNIQUE SCAN         | PK_CCPS_CHANNEL  |     1 |       |     0   (0)| 00:00:01 |  Q1,00 | PCWP |            |
-----------------------------------------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter(ROWNUM<=:5)
   5 - filter(ROWNUM<=:5)
   8 - filter("TRD"."TR_CHECKED"=0 AND "TRD"."TR_MER_NO"<>TO_NUMBER(:1) AND (UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:3) OR 
              UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:4)) AND "TRD"."TR_STATUS"<>(-2) AND "TRD"."TR_DATETIME"<=SYSDATE@!-:2/1440)
  10 - access("TRD"."TR_CHA_CODE"="CH"."CHA_CODE"(+))

-------------------------------------------------------------------------------
ALTERNATIVE PLANS SECTION
-------------------------------------------------------------------------------

Plan 3
------
 
  Plan Origin                 :Cursor Cache                  
  Plan Hash Value       :1210540799                    
  Executions                  :6829                          
  Elapsed Time              :2.437 sec                     
  CPU Time                    :2.436 sec                     
  Buffer Gets                  :152007                        
  Disk Reads                 :360                           
  Disk Writes                 :0                             
 
Notes: 
  1. Statistics shown are averaged over multiple executions.
 
---------------------------------------------------------------------------------------------------
| Id  | Operation                      | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT               |                  |  1000 |   236K|  1396K  (1)| 04:39:23 |
|   1 |  SORT ORDER BY                 |                  |  1000 |   236K|  1396K  (1)| 04:39:23 |
|*  2 |   COUNT STOPKEY                |                  |       |       |            |          |
|*  3 |    HASH JOIN RIGHT OUTER       |                  |  2103 |   496K|  1396K  (1)| 04:39:23 |
|   4 |     TABLE ACCESS FULL          | CCPS_CHANNEL     |   193 | 14282 |     5   (0)| 00:00:01 |
|*  5 |     TABLE ACCESS BY INDEX ROWID| CCPS_TRADERECORD |  2103 |   345K|  1396K  (1)| 04:39:23 |
|*  6 |      INDEX RANGE SCAN          | IX_TR_DATETIME   |  1531K|       | 13143   (1)| 00:02:38 |
---------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter(ROWNUM<=:5)
   3 - access("TRD"."TR_CHA_CODE"="CH"."CHA_CODE"(+))
   5 - filter("TRD"."TR_CHECKED"=0 AND "TRD"."TR_MER_NO"<>TO_NUMBER(:1) AND 
              (UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:3) OR UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:4)) 
              AND "TRD"."TR_STATUS"<>(-2))
   6 - access("TRD"."TR_DATETIME"<=SYSDATE@!-:2/1440)

Plan 2  (更换了下驱动表啦)
------
 
  Plan Origin                 :Cursor Cache                  
  Plan Hash Value             :280106883                     
  Executions                  :6441                          
  Elapsed Time                :2.187 sec                     
  CPU Time                    :2.186 sec                     
  Buffer Gets                 :602021                        
  Disk Reads                  :329                           
  Disk Writes                 :0                             
 
Notes: 
  1. Statistics shown are averaged over multiple executions.
 
---------------------------------------------------------------------------------------------------
| Id  | Operation                      | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT               |                  |  1000 |   236K|  1396K  (1)| 04:39:23 |
|   1 |  SORT ORDER BY                 |                  |  1000 |   236K|  1396K  (1)| 04:39:23 |
|*  2 |   COUNT STOPKEY                |                  |       |       |            |          |
|*  3 |    HASH JOIN OUTER             |                  |  2103 |   496K|  1396K  (1)| 04:39:23 |
|*  4 |     TABLE ACCESS BY INDEX ROWID| CCPS_TRADERECORD |  2103 |   345K|  1396K  (1)| 04:39:23 |
|*  5 |      INDEX RANGE SCAN          | IX_TR_DATETIME   |  1531K|       | 13143   (1)| 00:02:38 |
|   6 |     TABLE ACCESS FULL          | CCPS_CHANNEL     |   193 | 14282 |     5   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter(ROWNUM<=:5)
   3 - access("TRD"."TR_CHA_CODE"="CH"."CHA_CODE"(+))
   4 - filter("TRD"."TR_CHECKED"=0 AND "TRD"."TR_MER_NO"<>TO_NUMBER(:1) AND 
              (UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:3) OR UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:4)) 
              AND "TRD"."TR_STATUS"<>(-2))
   5 - access("TRD"."TR_DATETIME"<=SYSDATE@!-:2/1440)

Plan 1
------
 
  Plan Origin                  :Cursor Cache                  
  Plan Hash Value        :415509470                     
  Executions                  :1387                          
  Elapsed Time              :2.081 sec                     
  CPU Time                    :2.082 sec                     
  Buffer Gets                  :1217334                       
  Disk Reads                 :29                            
  Disk Writes                  :0                             
 
Notes: 
  1. Statistics shown are averaged over multiple executions.
 
---------------------------------------------------------------------------------------------------
| Id  | Operation                      | Name             | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT               |                  |  1000 |   236K|  1398K  (1)| 04:39:48 |
|   1 |  SORT ORDER BY                 |                  |  1000 |   236K|  1398K  (1)| 04:39:48 |
|*  2 |   COUNT STOPKEY                |                  |       |       |            |          |
|   3 |    NESTED LOOPS OUTER          |                  |  2103 |   496K|  1398K  (1)| 04:39:48 |
|*  4 |     TABLE ACCESS BY INDEX ROWID| CCPS_TRADERECORD |  2103 |   345K|  1396K  (1)| 04:39:23 |
|*  5 |      INDEX RANGE SCAN          | IX_TR_DATETIME   |  1531K|       | 13143   (1)| 00:02:38 |
|   6 |     TABLE ACCESS BY INDEX ROWID| CCPS_CHANNEL     |     1 |    74 |     1   (0)| 00:00:01 |
|*  7 |      INDEX UNIQUE SCAN         | PK_CCPS_CHANNEL  |     1 |       |     0   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------------
 
Predicate Information (identified by operation id):
---------------------------------------------------
 
   2 - filter(ROWNUM<=:5)
   4 - filter("TRD"."TR_CHECKED"=0 AND "TRD"."TR_MER_NO"<>TO_NUMBER(:1) AND 
              (UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:3) OR UPPER("TRD"."TR_BANK_CODE")=SYS_OP_C2C(:4)) 
              AND "TRD"."TR_STATUS"<>(-2))
   5 - access("TRD"."TR_DATETIME"<=SYSDATE@!-:2/1440)
   7 - access("TRD"."TR_CHA_CODE"="CH"."CHA_CODE"(+))

SQL_TEXT

DECLARE

my_task_name VARCHAR2(30);

my_sqltext  CLOB;

BEGIN

my_sqltext := 'select a.id,a.name,b.id,b.namefrom bigtable a,smalltable b where a.id=b.id and a.id=40000';

my_task_name :=DBMS_SQLTUNE.CREATE_TUNING_TASK( 
                           sql_text => my_sqltext, 
                           user_name => 'SCOTT', 
                            scope => 'COMPREHENSIVE', 
                            time_limit => 60, 
                            task_name => 'test_sql_tuning_task1', 
                           description => 'Task to tune a query'); 
 DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name=> 'test_sql_tuning_task1');
 END; 
  /

官方文档

SQL textformat:

DBMS_SQLTUNE.CREATE_TUNING_TASK(

sql_text         IN CLOB,

bind_list        IN sql_binds := NULL,

user_name        IN VARCHAR2  := NULL,

scope            IN VARCHAR2  := SCOPE_COMPREHENSIVE,

time_limit       IN NUMBER    := TIME_LIMIT_DEFAULT,

task_name        IN VARCHAR2  := NULL,

description      IN VARCHAR2  := NULL)

RETURN VARCHAR2;

SQL IDformat:

DBMS_SQLTUNE.CREATE_TUNING_TASK(

sql_id           IN VARCHAR2,

plan_hash_value  IN NUMBER    := NULL,

scope            IN VARCHAR2  := SCOPE_COMPREHENSIVE,

time_limit       IN NUMBER    := TIME_LIMIT_DEFAULT,

task_name        IN VARCHAR2  := NULL,

description      IN VARCHAR2  := NULL)

RETURN VARCHAR2;

WorkloadRepository format:

DBMS_SQLTUNE.CREATE_TUNING_TASK(

begin_snap       IN NUMBER,

end_snap         IN NUMBER,

sql_id           IN VARCHAR2,

plan_hash_value  IN NUMBER    := NULL,

scope            IN VARCHAR2  := SCOPE_COMPREHENSIVE,

time_limit       IN NUMBER    := TIME_LIMIT_DEFAULT,

task_name        IN VARCHAR2  := NULL,

description      IN VARCHAR2  := NULL)

RETURN VARCHAR2;

SQLSETformat:

DBMS_SQLTUNE.CREATE_TUNING_TASK(

sqlset_name       IN VARCHAR2,

basic_filter      IN VARCHAR2 :=  NULL,

object_filter     IN VARCHAR2:=  NULL,

rank1             IN VARCHAR2 :=  NULL,

rank2             IN VARCHAR2 :=  NULL,

rank3             IN VARCHAR2 :=  NULL,

result_percentageIN NUMBER   :=  NULL,

result_limit      IN NUMBER   := NULL,

scope             IN VARCHAR2 :=  SCOPE_COMPREHENSIVE,

time_limit        IN NUMBER   := TIME_LIMIT_DEFAULT,

task_name         IN VARCHAR2 :=  NULL,

description       IN VARCHAR2 :=  NULL

plan_filter       IN VARCHAR2 :=  'MAX_ELAPSED_TIME',

sqlset_owner      IN VARCHAR2 :=  NULL)

RETURN VARCHAR2;

SQLPerformance Analyzer format:

DBMS_SQLTUNE.CREATE_TUNING_TASK(

spa_task_name     IN VARCHAR2,

spa_task_owner    IN VARCHAR2:=  NULL,

spa_compare_exec  IN VARCHAR2:=  NULL,

basic_filter      IN VARCHAR2:=  NULL,

time_limit        IN NUMBER   := TIME_LIMIT_DEFAULT,

task_name         IN VARCHAR2 :=  NULL,

description       IN VARCHAR2 :=  NULL)

RETURN VARCHAR2;

Parameters

Table 140-17 CREATE_TUNING_TASK Function Parameters

Parameter

Description

sql_text

Text of a SQL statement

begin_snap

Begin snapshot identifier

end_snap

End snapshot identifier

sql_id

Identifier of a SQL statement

bind_list

An ordered list of bind values in ANYDATA type

plan_hash_value

Hash value of the SQL execution plan

sqlset_name

SQL tuning set name

basic_filter

SQL predicate to filter the SQL from the SQL tuning set

object_filter

Object filter

rank(i)

Order-by clause on the selected SQL

result_percentage

Percentage on the sum of a ranking measure

result_limit

Top L(imit) SQL from the (filtered/ranked) SQL

user_name

Username for whom the statement is to be tuned

scope

Tuning scope (limited/comprehensive)

time_limit

The maximum duration in seconds for the tuning session

task_name

Optional tuning task name

description

Description of the SQL tuning session to a maximum of 256 characters

plan_filter

Plan filter. It is applicable in case there are multiple plans (plan_hash_value) associated with the same statement. This filter allows for selecting one plan (plan_hash_value) only. Possible values are:

  • LAST_GENERATED: plan with the most recent timestamp
  • FIRST_GENERATED: plan with the earliest timestamp, the opposite to LAST_GENERATED
  • LAST_LOADED: plan with the most recent first_load_time statistics information
  • FIRST_LOADED: plan with the earliest first_load_time statistics information, the opposite to LAST_LOADED
  • MAX_ELAPSED_TIME: plan with the maximum elapsed time
  • MAX_BUFFER_GETS: plan with the maximum buffer gets
  • MAX_DISK_READS: plan with the maximum disk reads
  • MAX_DIRECT_WRITES: plan with the maximum direct writes
  • MAX_OPTIMIZER_COST: plan with the maximum optimizer cost

sqlset_owner

Owner of the SQL tuning set, or NULL for the current schema owner

spa_task_name

Name of the SQL Performance Analyzer task whose regressions are to be tuned

spa_task_owner

Owner of specified SQL Performance Analyzer task or NULL for current user

spa_compare_exec

Execution name of Compare Performance trial of SQL Performance Analyzer task. If NULL, we use the most recent execution of the given SQL Performance Analyzer task, of type COMPAREPERFORMANCE

Return Values

A SQL tuningtask name that is unique by user (two different users can give the same name totheir advisor tasks).

Usage Notes

With regardto the form of this subprogram that takes a SQL tuning set, filters provided tothis function are evaluated as part of a SQL run by the current user. As such,they are executed with that user's security privileges and can contain anyconstructs and subqueries that user can access, but no more.

Examples

variable stmt_task VARCHAR2(64);

variable sts_task VARCHAR2(64);

variable spa_tune_task VARCHAR2(64);

Create TuningTask with SQL Text format

EXEC :stmt_task := DBMS_SQLTUNE.CREATE_TUNING_TASK( -

sql_text =>'select quantity_sold from sales s, times t where s.time_id = t.time_id ands.time_id = TO_DATE(''24-NOV-00'')');

Create TuningTask with SQL ID format

EXEC :stmt_task := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id=> 'ay1m3ssvtrh24');

-- tune in limited scope

EXEC :stmt_task := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id=> 'ay1m3ssvtrh24', -

scope =>'LIMITED');

-- only give 10 minutes for tuning statement

EXEC :stmt_task := DBMS_SQLTUNE.CREATE_TUNING_TASK(sql_id=> 'ay1m3ssvtrh24', -

time_limit =>600);

Create TuningTask with AWR Snapshot format

EXEC :stmt_task :=DBMS_SQLTUNE.CREATE_TUNING_TASK(begin_snap => 1, -

end_snap =>2, sql_id => 'ay1m3ssvtrh24');

Create TuningTask with SQL Tuning Set format

-- First we need to load an STS, then tune it

-- Tune our statements in order by buffer gets, timelimit of one hour

-- the default ranking measure is elapsed time.

EXEC :sts_task := DBMS_SQLTUNE.CREATE_TUNING_TASK( -

sqlset_name  => 'my_workload', -

rank1        => 'BUFFER_GETS', -

time_limit   => 3600, -

description  => 'tune my workload ordered by buffergets');

Create Tuning Task with SPA Task format 

-- Tune the SQLs that were reported as having regressedfrom the compare

-- performance execution of the SPA task named task_123

EXEC :spa_tune_task := DBMS_SQLTUNE.CREATE_TUNING_TASK(

spa_task_name     =>'task_123',

spa_task_owner    => 'SCOTT',

spa_compare_exec  => 'exec1');

SQL Tuning Advisor 使用11G的自动调优建议相关推荐

  1. mysql limit acs_Oracle Acs资深顾问罗敏 老罗技术核心感悟:牛! 11g的自动调优和

    作者为:? SHOUG成员 – ORACLE ACS高级顾问罗敏 多年前的一段往事 记得多年以前在一个10g平台的数据仓库项目上遇到一个非常难优化的SQL语句,当时即便我采集了统计信息.甚至在语句中增 ...

  2. mysql sql tuning_使用SQL tuning advisor(STA)自动优化SQL

    Oracle 10g之后的优化器支持两种模式,一个是normal模式,一个是tuning模式.在大多数情况下,优化器处于normal模式.基于CBO的n Oracle 10g之后的优化器支持两种模式, ...

  3. Oracle SQL Tuning Advisor 测试

    如果面对一个需要优化的SQL语句,没有很好的想法,可以先试试Oracle的SQL Tuning Advisor. SQL> select * from v$version;BANNER ---- ...

  4. 深入了解SQL Tuning Advisor

    1.前言:一直以来SQL调优都是DBA比较费力的技术活,而且很多DBA如果没有从事过开发的工作,那么调优更是一项头疼的工作,即使是SQL调优很厉害的高手,在SQL调优的过程中也要不停的分析执行计划.加 ...

  5. oracle advisor权限,Oracle调整顾问(SQL Tuning Advisor 与 SQL Access Advisor )

    在Oracle数据库出现性能问题时,使用Oracle本身的工具包,给出合理的调优建议是比较省力的做法.将一条或多条SQL语句做为输入内容 在Oracle数据库出现性能问题时,使用Oracle本身的工具 ...

  6. oracle sqladvisor,Oracle 11 sql tuning advisor sql access advisor关闭以及job查看与停止

    Oracle11g自动维护任务 参考博客:http://blog.itpub.net/12798004/viewspace-1247636/ # 自动收集优化器统计信息 收集数据库所有schema没有 ...

  7. Utilize Sql Tuning Advisor from Script

    Sql Tuning Advisor是10g以后出现的一个十分有用的调优工具,大多数情况下我们可以通过dbconsole或者Grid Control的web界面调用SQL Advisor:但如果系统中 ...

  8. SQL Tuning Advisor简单使用

    SQL Tuning Advision是Oracle提供的一个功能包,可以针对有性能问题的SQL给出优化建议.可以作为调优的辅助手段. 建立测试表和索引 create table t_1 as sel ...

  9. SQL Tuning Advisor使用实例

    在oracle10g之前,想要优化一个sql语句是比较麻烦,但是在oracle10g这个版本推出的SQL Tuning Advisor这个工具,能大大减少sql调优的工作量,不过要想使用SQL Tun ...

最新文章

  1. 拉格朗日插值法(Lagrange插值法)
  2. golang beego框架对运行异常的处理
  3. append 降低数组位数_腿粗有理!研究发现腿部脂肪多,能大幅降低患高血压的风险!...
  4. 互联网技术架构的启示
  5. VS2017 运行VS2013项目
  6. yield return的理解
  7. 肖像:作家艺术家之一
  8. 430. 扁平化多级双向链表
  9. 【转】CT层厚、层间距、层间隔的概念是什么,MRI的层厚、层间距、曾间隔是什么
  10. 计算机重应用,装了一大堆应用,iPhone6会变重吗?
  11. mybatisplus查询今天的数据_Spring系列——MybatisPlus
  12. iOS:Xcode8以下真机测试iOS10.0和iOS10.1配置包
  13. 非模态对话框的销毁及消息的发送顺序
  14. java jslider 自定义_Java自定义JSlider UI
  15. JavaScript事件函数监视
  16. gff3转mysql_GBrowse的安装和使用
  17. 中标麒麟V6版本32位以及64位下载地址
  18. win10如何禁止CDR软件访问网络的设置方法教程
  19. 从上帝视角看进程调度
  20. 单片机教学打铃控制器C语言

热门文章

  1. 在线客服机器人交互功能开发总结
  2. Unity 镜像sprite
  3. iOS开发之企业开发者账号打包发布 App 到服务器上的流程
  4. ArcGIS:横向图例设置
  5. python-套接字基础与 UDP 通信
  6. 如何设置Sketch快捷键,Sketch提升效率的常用技巧
  7. php strtotime技巧,获取前几天、前几周、后几天、后几周,本月开始和本月结束时间
  8. ae教程 (五)滤镜特效 (五)描边光效
  9. 什么是TAO以及如何安装和使用TAO
  10. camtasia怎么在视频上添加图片