- Kategorien:
EXPLAIN_JSON¶
Diese Funktion konvertiert einen EXPLAIN-Plan im JSON-Format in eine Tabelle. Die Ausgabe entspricht der Ausgabe des Befehls EXPLAIN USING TABULAR < Anweisung>
.
- Siehe auch:
Syntax¶
EXPLAIN_JSON( <explain_output_in_json_format> )
Argumente¶
explain_output_in_json_format
Eine Zeichenfolge oder ein Ausdruck, der eine Zeichenfolge ergibt, die die EXPLAIN-Ausgabe als JSON-kompatible Zeichenfolge enthält. In der Regel ist diese Eingabe die Ausgabe der Funktion SYSTEM$EXPLAIN_PLAN_JSON. Wenn eine Zeichenfolgenliteral verwendet wird, sollte dieses in einfache Anführungszeichen
'
eingeschlossen sein.
Rückgabewerte¶
Die Funktion gibt eine Tabelle zurück, die die EXPLAIN-Ausgabe als sortierten Satz von Zeilen enthält.
Die Ausgabe dieser Funktion entspricht der Ausgabe von EXPLAIN USING TABULAR <SQL-Anweisung>
.
Nutzungshinweise¶
Die Eingabe muss ein Konstantenausdruck sein. Sie können diese Funktion beispielsweise nicht für eine Spalte aufrufen.
Wenn als Eingabe ein Zeichenfolgenliteral übergeben wird, kann das zum Umschließen der Zeichenfolge verwendete Trennzeichen entweder ein einfaches Anführungszeichen
'
oder ein doppeltes Dollarzeichen$$
sein. Wenn das Zeichenfolgenliteral einfache Anführungszeichen (und keine doppelten Dollarzeichen) enthält, müssen Sie die in der Zeichenfolge enthaltenen einfachen Anführungszeichen nicht durch Trennen der Zeichenfolge mit doppelten Dollarzeichen umgehen.Die Ausgabetabelle kann mit der Funktion RESULT_SCAN bearbeitet werden.
Diese Funktion konvertiert EXPLAIN-Informationen im JSON-Format in ein Tabellenformat. Häufig wird der JSON-Wert direkt oder indirekt mit der Funktion SYSTEM$EXPLAIN_PLAN_JSON erzeugt. Beispielsweise könnte die Ausgabe von SYSTEM$EXPLAIN_PLAN_JSON in einer Tabelle gespeichert und später mit dieser EXPLAIN_JSON-Funktion angezeigt werden.
Da die Ausgabe tabellarisch ist, wird diese Funktion als Tabellenfunktion klassifiziert.
Beispiele¶
Die folgenden Beispiele zeigen die Verwendung dieser Funktion:
SELECT * FROM TABLE( EXPLAIN_JSON( SYSTEM$EXPLAIN_PLAN_JSON( 'SELECT Z1.ID, Z2.ID FROM Z1, Z2 WHERE Z2.ID = Z1.ID') ) ); +------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------+ | step | id | parentOperators | operation | objects | alias | expressions | partitionsTotal | partitionsAssigned | bytesAssigned | |------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------| | NULL | NULL | NULL | GlobalStats | NULL | NULL | NULL | 2 | 2 | 1024 | | 1 | 0 | NULL | Result | NULL | NULL | Z1.ID, Z2.ID | NULL | NULL | NULL | | 1 | 1 | [0] | InnerJoin | NULL | NULL | joinKey: (Z2.ID = Z1.ID) | NULL | NULL | NULL | | 1 | 2 | [1] | TableScan | TESTDB.TEMPORARY_DOC_TEST.Z2 | NULL | ID | 1 | 1 | 512 | | 1 | 3 | [1] | JoinFilter | NULL | NULL | joinKey: (Z2.ID = Z1.ID) | NULL | NULL | NULL | | 1 | 4 | [3] | TableScan | TESTDB.TEMPORARY_DOC_TEST.Z1 | NULL | ID | 1 | 1 | 512 | +------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------+