SQL-Tuning-Advisor-Task anlegen, ausführen und Empfehlungen lesen
OraclePerformanceBefehl
-- 1) Create and run a task for a SQL in the cursor cache:
VAR task VARCHAR2(64)
BEGIN
:task := DBMS_SQLTUNE.CREATE_TUNING_TASK(
sql_id => '<sql_id>',
scope => DBMS_SQLTUNE.SCOPE_COMPREHENSIVE,
time_limit => 300,
task_name => 'STA_<sql_id>',
description => 'Slow report query');
DBMS_SQLTUNE.EXECUTE_TUNING_TASK(task_name => :task);
END;
/
-- For a historical SQL in AWR: begin_snap => <b>, end_snap => <e>, sql_id => '<sql_id>'
-- 2) Status and report:
SELECT task_name, status FROM dba_advisor_log WHERE task_name = :task;
SET LONG 1000000 LONGCHUNKSIZE 1000000 LINESIZE 200 PAGESIZE 0
SELECT DBMS_SQLTUNE.REPORT_TUNING_TASK(:task) FROM dual;
-- 3) Get the recommendations as an executable script:
SELECT DBMS_SQLTUNE.SCRIPT_TUNING_TASK(:task) FROM dual;
-- 4) When done:
EXEC DBMS_SQLTUNE.DROP_TUNING_TASK(task_name => :task);Was es tut
Führt den Optimizer für die SQL in einem erweiterten "Tuning-Modus" aus und erzeugt Empfehlungen zu fehlenden Statistiken, neuen Indizes, einem SQL-Profil, alternativen Plänen und Umstrukturierung der SQL; validiert die Profilempfehlung mit Testausführungen.
Wann einsetzen
Wenn eine einzelne problematische SQL schnell eine zweite Meinung braucht oder wenn für eine Planregression ein SQL-Profil als Lösung ohne Codeänderung gesucht wird.
Vorsicht
Erfordert die Tuning-Pack-Lizenz. Der Umfang COMPREHENSIVE kann die SQL zum Testen ausführen (bei DML nur den Abfrageteil); setze in der Produktion time_limit. Indexempfehlungen ignorieren den Rest der Workload; bewerte die DML-Kosten separat. Der Benutzer braucht das Privileg ADVISOR.
Verwandte Einträge
- AWR-Snapshot erstellen und AWR-Report zwischen zwei Snapshots erzeugen
- AWR-Diff-Report (Compare Period) zwischen zwei Zeiträumen
- Top Wait Events und Top-SQL der letzten Minuten aus ASH
- ADDM-Analyse ausführen und Report abrufen
- SQL-Monitor-Report abrufen (laufende oder abgeschlossene lange SQL)
- 10046-Trace für eine Session aktivieren/deaktivieren und mit TKPROF zusammenfassen