SQL Profile介绍(二)

2014-11-24 07:16:34 · 作者: · 浏览: 16
L> declare

begin

for i in 1 .. 10000 loop

insert into test values(i);

commit;

end loop;

end;

/

PL/SQL procedure successfully completed.

SQL> create index test_idx on test(n);

Index created.

SQL> exec dbms_stats.gather_table_stats('','TEST');

PL/SQL procedure successfully completed.

set autotrace on

select /*+ no_index(test test_idx) */ * from test where n=1

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

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

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

| 0 | SELECT STATEMENT | | 1 | 4 | 5 (0)| 00:00:01 |

|* 1 | TABLE ACCESS FULL| TEST | 1 | 4 | 5 (0)| 00:00:01 |

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

SESSION2--SYS

创建并执行tuning task,并运行report tuning task,采用建议的SQL Profile

declare

my_task_name VARCHAR2(30);

my_sqltext CLOB;

begin

my_sqltext := 'select /*+ no_index(test test_idx) */ * from test where n=1';

my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(

sql_text => my_sqltext,

user_name => 'SCOTT',

scope => 'COMPREHENSIVE',

time_limit => 60,

task_name => 'my_sql_tuning_task_2',

description => 'Task to tune a query on a specified table');

end;

/

PL/SQL procedure successfully completed.

begin

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

end;

/

PL/SQL procedure successfully completed.

set long 1000

set longchunksize 1000

set linesize 100

SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK( 'my_sql_tuning_task_2') from DUAL;

DBMS_SQLTUNE.REPORT_TUNING_TASK('MY_SQL_TUNING_TASK_2')

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

GENERAL INFORMATION SECTION

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

Tuning Task Name : my_sql_tuning_task_2

Tuning Task Owner : SYS

Workload Type : Single SQL Statement

Scope : COMPREHENSIVE

Time Limit(seconds): 60

Completion Status : COMPLETED

Started at : 10/26/2011 15:07:04

Completed at : 10/26/2011 15:07:08

DBMS_SQLTUNE.REPORT_TUNING_TASK('MY_SQL_TUNING_TASK_2')

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

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

Schema Name: SCOTT

SQL ID : d4wgpc5g0s0vu

SQL Text : select /*+ no_index(test test_idx) */ * from test where n=1

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

FINDINGS SECTION (1 finding)

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

1- SQL Profile Finding (see explain plans section below)

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

DBMS_SQLTUNE.REPORT_TUNING_TASK('MY_SQL_TUNING_TASK_2')

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

A potentially better execution plan was found for this statement.

Recommendation (estimated benefit: 90.95%)

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