プランの EXPLAIN 表行の検索

特定プランのすべての EXPLAIN 可能ステートメントでも、EXPLAIN 表行を論理順序で検出できます。

このタスクについて

プログラム固有のプログラミングインターフェース情報の開始。複数のプロセスが同じプラン表に行を挿入できます。 そのため、アクセス・パスを確認するには、特定の照会に関連する行を適切な順序で取得する必要があります。 特定のプランに関連した行は、APPLNAME 列の値によって識別されます。

プロシージャー

プラン内のすべての EXPLAIN 可能ステートメントのすべての行を論理順序で取得するには、次のようにします。

以下の SQL ステートメントを発行します。
SELECT * FROM user-ID.PLAN_TABLE
  WHERE APPLNAME = 'application-name'
  ORDER BY EXPLAIN_TIME, QUERYNO1, QBLOCKNO, PLANNO, MIXOPSEQ;
  1. 静的 SQL パッケージが EXPLAIN(YES) オプションにバインドされており、QUERYNO に同じ値を持つ複数のステートメントが含まれる場合、QUERYNO の代わりに SECTNOI 列を使用します。

結果

ORDER BY 文節の結果は、次のいずれかの条件が存在するかどうかを示します。

  • QUERYNO または SECTNOI 値に複数の QBLOCKNO 値があるか
  • QBLOCKNO 値に複数の PLANNO 値があるか
  • PLANNO 値に複数の MIXOPSEQ 値があるか

QBLOCKNO の非ゼロの値と QUERYNO または SECTNOI の値が同じすべての行は、照会で 1 つのステップに関連付けられます。 QBLOCKNO 値は PLAN_TABLE で示されている順序になっているとは限りませんが、 特定の QBLOCKNO については、PLANNO 列は実行順序どおりのサブステップになっています。

サブステップごとに、TNAME 列は、アクセスした表を識別します。 ソートは、表アクセスの一部として、または別個のステップとして示されます。

QUERYNO=0 を含むエントリについては、個々のステートメントを区別するためにEXPLAIN_TIMEまたはSECTNOI列を使用します。プログラム固有のプログラミングインターフェース情報を終了します。