SQL Plan Execution / DBMS_XPLAN / SQL Monitor

Zur Analyse von Ausführungsplänen gibt es verschiedenste Möglichkeiten.
Gerade bei langlaufenden Statements kann es hilfreich sein zu sehen, was in welcher Reihenfolge ausgeführt wird.

Hint: GATHER_PLAN_STATISTICS -> zum Sammeln von Laufzeitinformationen bei der Ausführung

Um nur den Plan zu sehen:
set linesize 250 pagesize 0 trims on tab off long 1000000
explain plan for
INSERT /*+ APPEND PARALLEL GATHER_PLAN_STATISTICS */
       INTO myTab_Ziel (
                C1,
                C2,
                C3
)
    SELECT /*+ PARALLEL */
           'A',
           2,
           sysdate
      FROM myTab_Quelle
     WHERE (1 = 1);
SELECT *
FROM table(DBMS_XPLAN.DISPLAY (FORMAT=>'ALLSTATS LAST ALL +OUTLINE'));


Um aktuelle Session zu sehen:
set linesize 250 pagesize 0 trims on tab off long 1000000
SELECT *
FROM table(DBMS_XPLAN.DISPLAY_CURSOR(
            SQL_ID=>'dx1zj8p29p27t', 
            CURSOR_CHILD_NO=>1, 
            FORMAT=>'ALL +OUTLINE'))
;


Wenn die Lizenz dafür vorhanden ist:
select 
   DBMS_SQL_MONITOR.REPORT_SQL_MONITOR
        (sql_id=>'dx1zj8p29p27t',report_level=>'ALL') report
from dual;
-> zeigt den aktuellen Fortschritt, wenn GATHER_PLAN_STATISTICS eingeschaltet



Quellen hierzu:

How to Generate a Useful SQL Execution Plan
https://blogs.oracle.com/optimizer/how-to-generate-a-useful-sql-execution-plan

zu DBMS_XPLAN:
Using DBMS_XPLAN.DISPLAY_CURSOR to examine Execution Plans
https://sqlmaria.com/2017/08/08/using-dbms_xplan-display_cursor-to-examine-execution-plans/

zu SQL Monitor (Lizenzpflichtig!)
Getting the most out of Oracle SQL Monitor
https://sqlmaria.com/2017/08/01/getting-the-most-out-of-oracle-sql-monitor/


Kommentare

Beliebte Posts aus diesem Blog

PGA unter Oracle 11g

trunc(sysdate) - nette Spiele mit dem Datum

Datapump - Verzeichnis erstellen