Automatic SQL Tuning 原理

gholay發表於2014-02-23
Automatic SQL Tuning 原理:

基於自動工作負載資訊庫最高位sql標識的sql語句進行優化。

1.如果是非dba使用者,要賦予advisor許可權
2.建立tuning任務
    使用在awr報表中發現有問題的sql進行tuning,還可以直接使用sql_id,cache cursor,sqlset(sql集)等方法
        建立該tuning任務
        SET SERVEROUTPUT ON

        -- Tuning task created for specific a statement from the AWR.
        DECLARE
          l_sql_tune_task_id  VARCHAR2(100);
        BEGIN
          l_sql_tune_task_id := DBMS_SQLTUNE.create_tuning_task (
                                  begin_snap  => 369,
                                  end_snap    => 370,
                                  sql_id      => '3a13916h8yz59',
                                  scope       => DBMS_SQLTUNE.scope_comprehensive,
                                  time_limit  => 60,
                                  task_name   => '3a13916h8yz59_AWR_tuning_task',
                                  description => 'Tuning task for statement 3a13916h8yz59 in AWR.');
          DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id);
        END;
        /
3.執行tuning任務
        EXEC DBMS_SQLTUNE.execute_tuning_task(task_name => '3a13916h8yz59_AWR_tuning_task');
4.檢視tuning任務的執行情況
        select * from dba_advisor_log
        如果發現該任務狀態是COMPLETED的時候,表示tuning已經完成了
5.檢視tuning的結果
    select dbms_sqltune.report_tuning_task('3a13916h8yz59_AWR_tuning_task') from dual

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

相關文章