利用sqltune優化sql

對低效的sql作優化,傳統的方式是產生執行計劃後,分析執行路徑、統計信息等等有無異常,調優過程主要依賴dba的經驗。利用dbms_sqltune包能夠簡化該過程,oracle產生執行計劃的同時,針對低效sql會主動給出優化建議,以提升調優效率。方法以下。一、建立針對低效sql的優化任務sql

ECLAREoracle

task_name VARCHAR2 (20);優化

sqltext CLOB;server

BEGINip

sqltext := 'select sender from DATA_BLKLISTS_HIS where sender=''86187xxxxxxxx''';it

task_name := dbms_sqltune.create_tuning_task (sql_text=> sqltext,io

bind_list => null,效率

user_name => 'SA',select

scope => 'COMPREHENSIVE',方法

time_limit => 60,

task_name => 'tunetask',

description => 'Tuning Task'

);

END;

/

二、執行任務

exec dbms_sqltune.execute_tuning_task('tunetask');

檢查任務執行狀態:

SELECT status FROM USER_ADVISOR_TASKS WHERE task_name = 'tunetask';

三、生產分析報告

SET LONG 999999

set serveroutput on size 999999

SET LINESIZE 100

SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK('tunetask') FROM DUAL;

關注報告輸出的recommendation,對有問題的sql,oracle會給出優化建議。

注:該方法至關於addm advisor的命令方式,在沒法使用EM的環境中可以使用。

相關文章
相關標籤/搜索