カテゴリ:

システム関数

EXPLAIN_JSON

この関数は、 EXPLAIN プランを JSON からテーブルに変換します。出力は、コマンド EXPLAIN USING TABULAR <ステートメント> の出力と同じです。

こちらもご参照ください。

SYSTEM$EXPLAIN_PLAN_JSONSYSTEM$EXPLAIN_JSON_TO_TEXT

構文

EXPLAIN_JSON( <explain_output_in_json_format> ) 
Copy

引数

explain_output_in_json_format

JSON 対応の文字列として EXPLAIN 出力を含む、文字列、または文字列に評価される式です。通常、この入力は関数 SYSTEM$EXPLAIN_PLAN_JSON の出力です。リテラル文字列を使用する場合は、一重引用符文字 ' で囲む必要があります。

戻り値

この関数は、 EXPLAIN 出力を含むテーブルを行の順序付きセットとして返します。

この関数の出力は、 EXPLAIN USING TABULAR <SQLステートメント> の出力と同等です。

使用上の注意

  • 入力は定数式でなければなりません。たとえば、列に対してこの関数を呼び出すことはできません。

  • 文字列リテラルが入力として渡される場合、文字列を囲む区切り文字は、一重引用符 ' または二重ドル記号 $$ のいずれかです。文字列リテラルに一重引用符が含まれる(また二重ドル記号が含まれない)場合、二重ドル記号で文字列を区切ると、文字列内に埋め込まれた一重引用符文字をエスケープする必要がなくなります。

  • 出力テーブルは、 RESULT_SCAN 関数を使用して処理できます。

  • この関数は、 EXPLAIN 情報を JSON から表形式に変換します。多くの場合、 JSON 値は SYSTEM$EXPLAIN_PLAN_JSON 関数から直接または間接的に生成されます。たとえば、 SYSTEM$EXPLAIN_PLAN_JSON からの出力をテーブルに保存し、後でこの EXPLAIN_JSON 関数を使用して表示できます。

  • 出力は表形式であるため、この関数は テーブル関数 として分類されます。

次の例は、この関数の使用方法を示しています。

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