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
引用URL
http://cgi.blog.roodo.com/trackback/2812741