Oracle
在 Oracle 中使用 SQL 訪問顧問的技巧
請分享如何使用 oracle SQL 訪問顧問進行單個或多個查詢。您可以假設我們知道我們感興趣的查詢的 sql id。
就像是:
declare task varchar2(30); begin task:= dbms_sqltune.CREATE_TUNING_TASK ( sql_id => '&sql_id', plan_hash_value => '&hv' ); dbms_output.put_line (task); dbms_sqltune.execute_tuning_task(task); end; /
讓工作執行。列出任務:
SELECT task_id, task_name, created, advisor_name, status FROM dba_advisor_tasks where TRUNC(created) = TRUNC(sysdate) order by CREATEd desc;
準備好後,閱讀報告
SELECT DBMS_SQLTUNE.report_tuning_task('&tuning_task') AS recommendations FROM dual;
如果需要,請實施建議:
DECLARE -- accept plan profile l_sql_tune_task_id VARCHAR2(20); BEGIN l_sql_tune_task_id := DBMS_SQLTUNE.accept_sql_profile ( task_name => '&tuning_task', name => '&profile'); DBMS_OUTPUT.put_line('l_sql_tune_task_id: ' || l_sql_tune_task_id); END; /
閱讀這些軟體包會有很大幫助。
對於 SQL 訪問顧問,請查看Oracle 數據庫中的 SQL 訪問顧問