- カテゴリ:
EXPLAIN_JSON¶
この関数は、 EXPLAIN プランを JSON からテーブルに変換します。出力は、コマンド EXPLAIN USING TABULAR <ステートメント>
の出力と同じです。
- こちらもご参照ください。
構文¶
EXPLAIN_JSON( <explain_output_in_json_format> )
引数¶
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 | +------+------+-----------------+-------------+------------------------------+-------+--------------------------+-----------------+--------------------+---------------+