--獲得sql_id
SELECT * FROM V$SQL WHERE UPPER(SQL_TEXT) LIKE '%WITH%'
AND UPPER(SQL_TEXT) LIKE '%TCNT%'
--創建執行優化任務
DECLARE
my_task_name VARCHAR2(30);
BEGIN
my_task_name := DBMS_SQLTUNE.CREATE_TUNING_TASK(
sql_id => 'crfjrqx3tnr9z',
scope => 'COMPREHENSIVE',
time_limit => 60,
task_name => 'test_tuning_task');
DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => 'test_tuning_task');
END;
/
--查看任務狀態
SELECT task_name,status FROM USER_ADVISOR_TASKS WHERE task_name ='test_tuning_task';
--查詢結果
set long 888888
set serveroutput on size 888888
set lines 100
SELECT dbms_sqltune.report_tuning_task('test_tuning_task') FROM dual;
--刪除優化任務
exec dbms_sqltune.drop_tuning_task('test_tuning_task');
PS:根據反饋結果進行操作,這裏一般都是一些收集統計信息,加索引,綁定sql_profier等的建議操作。
具體優化方式還要根據sql的實際情況來,這裏的建議只能作爲參考,是否生效還是需要自己判斷。