2007年03月6日

命令模式執行sql tune advisor

在10g的em中是可以很方便的按一按就可跑完advisor的功能了,但怕有時環境沒辦法提供web介面時,這時還是要靠script了。親自手動做了一下,發現並不難,把流程記錄一下了


主要是由dbms_sqltune這個package來處理,一個簡單的範列
1、設定相關的環境
SQL>set serverout on   size 9999
SQL>set long 9999


2、開始寫我們的內容了
declare
l_id  varchar2(100);
l_sql varchar2(100);
begin
l_sql := 'select * from hr.employees';  //測試用的sql
l_id := dbms_sqltune.create_tuning_task (
sql_text => l_sql,  
user_name -> 'SYS',  //我是直接用sys身份進行測試
scope => 'COMPREHENSIVE',  //選擇的種類
task_name => 'test_tune'  //取個名字給他,不然後面就知道要執行那個advisor了
);
dbms_sqltune.execute_tuning_task('test_tune');  //看你取什名字就打什名字
end;
/

3、查看結果
SQL>select  dbms_sqltune.report_tuning_task('test_tune') from dual;

4、刪除的語法
SQL>dbms_sqltune.drop_tuning_task('test_tune');

相關的函數內容參考官方文件
http://download-east.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_sqltun.htm#i1006896

Posted by my_work at 樂多Roodo! │22:28 │回應(0)引用(0)DB
樂多分類:網路/3C 共同主題:Oracle 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/2812741