SQL-Monitor-Report abrufen (laufende oder abgeschlossene lange SQL)
OraclePerformanceBefehl
-- List monitored SQL (longer than 5 s, parallel, or /*+ MONITOR */):
SELECT sql_id, status, username, sql_exec_id,
TO_CHAR(sql_exec_start,'YYYY-MM-DD HH24:MI:SS') AS exec_start,
ROUND(elapsed_time/1e6,1) AS elapsed_s,
ROUND(cpu_time/1e6,1) AS cpu_s,
buffer_gets, px_servers_allocated
FROM v$sql_monitor
ORDER BY sql_exec_start DESC
FETCH FIRST 20 ROWS ONLY;
-- TEXT report (actual rows, time and activity per plan line):
SET LONG 10000000 LONGCHUNKSIZE 10000000 LINESIZE 300 PAGESIZE 0 TRIMSPOOL ON
SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
sql_id => '<sql_id>',
type => 'TEXT',
report_level => 'ALL') AS report
FROM dual;
-- Shareable HTML (interactive in a browser):
SPOOL /tmp/sqlmon_<sql_id>.html
SELECT DBMS_SQLTUNE.REPORT_SQL_MONITOR(
sql_id => '<sql_id>', type => 'ACTIVE', report_level => 'ALL')
FROM dual;
SPOOL OFFWas es tut
Real-Time SQL Monitoring zeigt für jeden Schritt des Ausführungsplans einer lang laufenden oder parallelen SQL die tatsächlichen Zeilen, die Laufzeit, Speicher-/Temp-Nutzung und ASH-Aktivität; du kannst den Fortschritt verfolgen, während die SQL noch läuft.
Wann einsetzen
Bei der Frage, ob eine Batch-/Report-Abfrage hängt und wie viel noch fehlt, für die Analyse der Parallel-Query-Verteilung (PX Skew) und um Abweichungen zwischen geschätzten (E-Rows) und tatsächlichen Zeilen zu finden.
Vorsicht
Erfordert die Tuning-Pack-Lizenz (Diagnostics Pack ist Voraussetzung). Standardmäßig wird nur SQL überwacht, die 5 s CPU/I-O verbraucht oder parallel läuft; für andere nutze den Hint /*+ MONITOR */. Sehr große Pläne (_sqlmon_max_planlines, Standard 300) werden nicht überwacht. Einträge bleiben nur begrenzte Zeit im Speicher; ab 12c sind ältere Reports auch über DBA_HIST_REPORTS verfügbar.
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
- 10046-Trace für eine Session aktivieren/deaktivieren und mit TKPROF zusammenfassen
- Tatsächlichen Ausführungsplan mit Row-Source-Statistiken anzeigen (ALLSTATS LAST)