Die Tabelle EXPLAIN_STATEMENT enthält den Text der SQL-Anweisung, wie sie für die verschiedenen Stufen der EXPLAIN-Informationen existiert. Die ursprüngliche SQL-Anweisung, wie sie vom Benutzer eingegeben wurde, wird in dieser Tabelle zusammen mit der (vom Optimierungsprogramm) zum Auswählen eines Zugriffsplans für die Ausführung der SQL-Anweisung verwendeten Version gespeichert. Die letztere Version hat oft sehr wenig Ähnlichkeit mit dem Original, da sie möglicherweise vom SQL-Compiler umgeschrieben und/oder mit zusätzlichen Vergleichselementen versehen wurde.
Die Definition dieser Tabelle finden Sie in Tabellendefinition EXPLAIN_STATEMENT.
Tabelle 87. Tabelle EXPLAIN_STATEMENT
Spaltenname | Datentyp | Nullwert? | Schlüssel? | Beschreibung |
---|---|---|---|---|
EXPLAIN_REQUESTER | VARCHAR(128) | Nein | PK, FK | Berechtigungs-ID des Initiators dieser EXPLAIN-Anforderung |
EXPLAIN_TIME | TIMESTAMP | Nein | PK, FK | Initialisierungszeitpunkt für die EXPLAIN-Anforderung |
SOURCE_NAME | VARCHAR(128) | Nein | PK, FK | Name des Pakets, das ausgeführt wurde, als die dynamische Anweisung mit EXPLAIN bearbeitet wurde, oder der Name der Quellendatei, als das statische SQL mit EXPLAIN bearbeitet wurde. |
SOURCE_SCHEMA | VARCHAR(128) | Nein | PK, FK | Schema oder Qualifikationsmerkmal der Quelle der EXPLAIN-Anforderung |
EXPLAIN_LEVEL | CHAR(1) | Nein | PK | Ebene der EXPLAIN-Informationen, für die diese Zeile relevant ist
Gültige Werte:
|
STMTNO | INTEGER | Nein | PK | Anweisungsnummer im Paket, auf die sich diese EXPLAIN-Informationen beziehen. Bei dynamischen EXPLAIN-SQL-Anweisungen wird dieser Wert auf 1 gesetzt. Bei statischen SQL-Anweisungen gleicht dieser Wert dem für die Katalogsicht SYSCAT.STATEMENTS verwendeten Wert. |
SECTNO | INTEGER | Nein | PK | Abschnittsnummer in dem Paket, die diese SQL-Anweisung enthält. Bei dynamischen SQL-Anweisungen EXPLAIN ist dies die Abschnittsnummer, die zum Speichern des Abschnitts für diese Anweisung zur Laufzeit verwendet wird. Bei statischen SQL-Anweisungen gleicht dieser Wert dem für die Katalogsicht SYSCAT.STATEMENTS verwendeten Wert. |
QUERYNO | INTEGER | Nein | Nein | Numerische Kennung für eine mit EXPLAIN bearbeitete SQL-Anweisung. Für dynamische SQL-Anweisungen (außer der SQL-Anweisung EXPLAIN), die mit Hilfe von CLP oder CLI angegeben wurden, ist der Standardwert ein sequentiell inkrementierter Wert. Andernfalls ist der Standardwert für statische SQL-Anweisungen der Wert STMTNO und für dynamische SQL-Anweisungen der Wert 1. |
QUERYTAG | CHAR(20) | Nein | Nein | Identifizierendes Kennzeichen für jede mit EXPLAIN bearbeitet SQL-Anweisung. Für dynamische SQL-Anweisungen, die mit CLP angegeben wurden (außer der EXPLAIN-SQL-Anweisung), ist der Standardwert 'CLP'. Für dynamische SQL-Anweisungen, die mit CLI angegeben wurden (außer der EXPLAIN-SQL-Anweisung), ist der Standardwert 'CLI'. Andernfalls werden Leerzeichen als Standardwert verwendet. |
STATEMENT_TYPE | CHAR(2) | Nein | Nein | Beschreibender Kennsatz für den mit EXPLAIN bearbeiteten
Abfragetyp.
Die folgenden Werte sind möglich:
|
UPDATABLE | CHAR(1) | Nein | Nein | Zeigt an, ob diese Anweisung als aktualisierbar angesehen wird.
Dies ist besonders wichtig für Anweisungen SELECT, die als potentiell
aktualisierbar bestimmt werden können.
Die folgenden Werte sind möglich:
|
DELETABLE | CHAR(1) | Nein | Nein | Zeigt an, ob diese Anweisung als löschbar angesehen wird. Dies ist
besonders wichtig für Anweisungen SELECT, die als potentiell löschbar bestimmt
werden können.
Die folgenden Werte sind möglich:
|
TOTAL_COST | DOUBLE | Nein | Nein | Der geschätzte Gesamtaufwand (in Timerons) der Ausführung des ausgewählten Zugriffsplans für diese Anweisung; der Wert wird auf 0 (null) gesetzt, wenn EXPLAIN_LEVEL O ist (ursprünglicher Text), da zu diesem Zeitpunkt kein Zugriffsplan ausgewählt ist. |
STATEMENT_TEXT | CLOB(1M) | Nein | Nein | Text oder Teil des Textes der mit EXPLAIN bearbeiteten SQL-Anweisung. Der Text, der für die Planauswahlstufe von EXPLAIN gezeigt wird, wurde aus der internen Darstellung rekonstruiert und ist SQL-ähnlich; das bedeutet, daß nicht garantiert wird, daß die rekonstruierte Anweisung der gültigen SQL-Syntax entspricht. |
SNAPSHOT | BLOB(10M) | Ja | Nein | Momentaufnahme der internen Darstellung für diese SQL-Anweisung beim
angezeigten Explain_Level.
Diese Spalte ist für die Verwendung mit DB2 Visual Explain konzipiert. Die Spalte wird auf null gesetzt, wenn der Wert für EXPLAIN_LEVEL gleich 0 ist (ursprüngliche Anweisung), da zu dem Zeitpunkt, zu dem diese spezifische Version der Anweisung erfaßt wird, kein Zugriffsplan ausgewählt ist. |
QUERY_DEGREE | INTEGER | Nein | Nein | Gibt den Grad der partitionsinternen Parallelität zum Zeitpunkt des Aufrufs von EXPLAIN an. Für die Originalanweisung enthält diese Angabe den gesteuerten Grad der partitionsinternem Parallelität. Bei PLAN SELECTION enthält sie den Grad der partitionsinternen Parallelität, der für den zu verwendenden Zugriffsplan generiert wurde. |