Kategorien:

Systemfunktionen

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:

SYSTEM$EXPLAIN_PLAN_JSON, SYSTEM$EXPLAIN_JSON_TO_TEXT

Syntax

EXPLAIN_JSON( <explain_output_in_json_format> ) 
Copy

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 | +------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------+ 
Copy