Oracle SQL Statements mit dem Tuning Pack überwachen - Überwachung mit dem MONITOR Hint aktivieren

DB:11g

Voraussetzung:

Mit dem /*+ MONITORING */ Hint kann ein SQL Statement so markiert werden, das es immer auch in die SQL Überwachung mit dem Tuning Pack aufgenommen wird.

Normalerweise werden nur Statements die länger als 5sec mit in die Überwachung aufgenommen.

Beispiel:

SELECT /*+ MONITOR */ deptno,COUNT(*) 
  FROM emp
 GROUP BY deptno
/

Überwachen kann die Ausführung über die View v$sql_monitor.

Beispiel:

-- obiges statement  als scott zuvor ausgeführt
 
 
 
SELECT SQL_ID
     , SQL_TEXT
     , DISK_READS
     , BUFFER_GETS
     , CPU_TIME 
 FROM v$sql_monitor
/
 
 
COLUMN  SQL_ID   format a20
COLUMN  SQL_TEXT format a30 word
 
SQL_ID               SQL_TEXT                         DISK_READS  BUFFER_GETS     CPU_TIME
-------------------- ------------------------------ ------------ ------------ ------------
a3tybcw6wjxry        SELECT /*+ MONITOR */                     2            6            0
                     deptno,COUNT(*)
                     FROM emp
                     GROUP BY deptno
 

Bericht über das Statement anzeigen:

SET TRIM ON
SET trimspool ON
SET echo off
SET feedback off
SET long 1000000
SET longchunksize 1000000
SET linesize 1000
SET pagesize 0
 
 
spool report_sql.html
 
SELECT DBMS_SQLTUNE.report_sql_monitor(
  sql_id       => 'a3tybcw6wjxry',
  TYPE         => 'HTML',
  report_level => 'ALL') AS report
FROM dual
/
 
spool off
 
-- unter windows den Bericht gleich anzeigen lassen
 
host report_sql.html

Für den Bericht stehen die folgenden Typen zur Auswahl:

Weitere Bericht über die v$sql_monitor mit dem Package DBMS_SQLTUNE ausgeben:

Quellen