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