EXPLAIN_STATEMENT 表

EXPLAIN_STATEMENT 表には、 さまざまなレベルの Explain 情報に関する SQL ステートメントのテキストが入ります。

この表には、ユーザーが入力した元の SQL ステートメントと、 その SQL ステートメントを満たすアクセス・プランを選択するのに (オプティマイザーで) 使用されるバージョンとが保管されます。 後のバージョンは、書き直されているか、SQL コンパイラーで判別された追加の述部によって拡張されているため、元のバージョンとはあまり類似していないことがあります。 加えて、ステートメント・コンセントレーターが使用可能で、ステートメント・コンセントレーターの結果としてステートメントが変更された場合は、有効な SQL ステートメントもこの表に保管されます。このステートメントは元のステートメントに類似していますが、リテラル値がシステム生成の名前付きパラメーター・マーカーに置き換えられることが異なります。この場合、プラン情報は有効なステートメントに基づきます。

表 1. EXPLAIN_STATEMENT 表. PK は、その列が主キーの一部であることを意味します。 FK は、その列が外部キーの一部であることを意味します。
列名 データ・タイプ NULL 可能 キー? 説明
EXPLAIN_REQUESTER VARCHAR(128) いいえ PK、 FK この Explain 要求を開始した許可 ID。
EXPLAIN_TIME TIMESTAMP いいえ PK、 FK Explain 要求の開始時刻。
SOURCE_NAME VARCHAR(128) いいえ PK、 FK 動的ステートメントに Explain 要求を出したときに実行していたパッケージの名前、 または静的 SQL に Explain 要求を出したときのソース・ファイルの名前。
SOURCE_SCHEMA VARCHAR(128) いいえ PK、 FK Explain 要求のソースのスキーマ、または修飾子。
SOURCE_VERSION VARCHAR(64) いいえ PK、 FK Explain 要求のソースのバージョン。
EXPLAIN_LEVEL CHAR(1) いいえ PK この行に関連する Explain 情報のレベル。
有効な値は以下のとおりです。
E
有効な SQL テキスト
F
行と列のアクセス制御が適用されたステートメント (最適化前)
O
元のテキスト (ユーザーが入力したもの)
P
PLAN SELECTION
S
セクションの Explain
STMTNO INTEGER いいえ PK この Explain 情報に関連したパッケージ内のステートメントの番号。 動的 Explain SQL ステートメントの場合は 1。 静的 SQL ステートメントの場合、 この値は SYSCAT.STATEMENTS カタログ・ビューで使用されているものと同じです。
SECTNO INTEGER いいえ PK パッケージ内のセクションのうち、 この SQL ステートメントを収めたもののセクション番号です。 動的 Explain SQL ステートメントの場合、これは、実行時にこのステートメントのセクションを保持するのに使用されるセクション番号です。静的 SQL ステートメントの場合、 この値は SYSCAT.STATEMENTS カタログ・ビューで使用されているものと同じです。
QUERYNO INTEGER いいえ いいえ Explain 対象の SQL ステートメントの数値 ID。 CLP または CLI を介して発行された動的 SQL ステートメントの場合 (EXPLAIN SQL ステートメントを除く)、 デフォルト値は 1 ずつ順番に大きくなる値です。 そうでない場合、デフォルト値は静的 SQL ステートメントでは STMTNO の値で、 動的 SQL ステートメントでは 1 です。
QUERYTAG CHAR(20) いいえ いいえ Explain 対象の各 SQL ステートメントの ID タグ。 CLP を介して発行された動的 SQL ステートメントの場合 (EXPLAIN SQL ステートメントは除く)、デフォルト値は「CLP」です。CLI を介して発行された動的 SQL ステートメントの場合 (EXPLAIN SQL ステートメントは除く)、デフォルト値は「CLI」です。それ以外の場合、使用されるデフォルト値はブランクです。
STATEMENT_TYPE CHAR(2) いいえ いいえ Explain 対象の照会のタイプの記述ラベル。
可能な値は以下のとおりです。
CL
呼び出し
CP
コンパウンド SQL (動的)
D
削除
DC
カーソルの現在位置の削除
I
挿入
M
マージ
S
選択
SI
SET INTEGRITY または表のリフレッシュ
U
更新
UC
カーソルの現在位置の更新
UPDATABLE CHAR(1) いいえ いいえ このステートメントが更新可能であると見なされるかどうかを示します。 これは特に、潜在的に更新可能であると見なされる可能性のある SELECT ステートメントに 関係しています。
可能な値は以下のとおりです。
' '
該当しない (ブランク)
N
いいえ
Y
はい
DELETABLE CHAR(1) いいえ いいえ このステートメントが削除可能であると見なされるかどうかを示します。 これは特に、潜在的に削除可能であると見なされる可能性のある SELECT ステートメントに関係しています。
可能な値は以下のとおりです。
' '
該当しない (ブランク)
N
いいえ
Y
はい
TOTAL_COST DOUBLE いいえ いいえ このステートメントについて選択されたアクセス・プランの実行のための合計コストの見積もり (timeron 単位)。 EXPLAIN_LEVEL が O または E (オリジナルまたは有効なテキスト) の場合は、 この時点で選択されているアクセス・プランがないため、ゼロに設定されます。
STATEMENT_TEXT CLOB(2M) いいえ いいえ Explain 対象の SQL ステートメントのテキスト、またはその一部。 Explain 機能のプラン選択またはセクションの Explain レベルで表示されるテキストは、 内部表記から再構成されたものであり、本質的に SQL ステートメントに類似したものです。 再構成されたステートメントは、正しい SQL 構文に必ず準拠しているとは限りません。
SNAPSHOT BLOB(10M) はい いいえ 示されている Explain_Level での、 この SQL ステートメントの内部表記のスナップショット。

EXPLAIN_LEVEL が P (プラン選択) でない場合は、 ステートメントのこの特定バージョンがキャプチャーされた時点でアクセス・プランが選択されていないため、 この列は NULL 値に設定されます。

QUERY_DEGREE INTEGER いいえ いいえ Explain の呼び出し時のパーティション内並列処理の度合い。 元のステートメントの場合、ここには指定された度合いのパーティション内並列処理が入ります。 元のステートメントでない場合、 ここには使用のプランに応じて生成されたパーティション内並列処理の度合いが入ります。