使用dbms_sqltune獲得SQL調整建議

gaopengtttt發表於2010-07-24

 

原創轉載請註明出處  

SQL TUNING ADVISOR是10G中顧問構架中的一個重要組建,除了使用EM來進行使用還可以使用語句來使用,主要目的在於看看ORACLE給出的SQL最佳化建議,但是好像不是每次都有效。如果能100%有用也不需要人為最佳化,不管如何我感覺可以一試。一下是完成這個任務的過程

1、建立調整任務

---define
DECLARE
my_task_name   VARCHAR2 (30);
my_sqltext     CLOB;
BEGIN
my_sqltext :=  'select * from pp,pp2 order by 1,2,3,4';
 my_task_name := dbms_sqltune.create_tuning_task (sql_text=> my_sqltext,
       bind_list     => null,
       user_name     => 'sys',
       scope         => 'COMPREHENSIVE',
       time_limit    => 60,
       task_name     => 'TEST_tuning_task',       
       description   => 'Tuning Task'
    );
END;

2、執行調整任務

---execute
exec dbms_sqltune.execute_tuning_task('TEST_tuning_task');

3、檢視執行情況

---checek
SELECT status FROM USER_ADVISOR_TASKS WHERE lower(task_name) ='test_tuning_task';
select * from user_advisor_tasks;

---report
SET LONG 999999
set serveroutput on size 999999
SET LINESIZE 1000
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('TEST_tuning_task') FROM DUAL;

4、刪除調整任務

---drop
exec dbms_sqltune.drop_tuning_task('TEST_tuning_task');

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-669342/,如需轉載,請註明出處,否則將追究法律責任。

相關文章