実行計画機能の使用

EXPLAIN PLAN機能を使用するには、次のステップを実行します:

  1. 接続の問合せウィンドウを開き、問合せウィンドウにSQL文を入力します。
  2. EXPLAIN PLANの出力をカスタマイズするには、EXPLAIN PLANのオプションを設定します。「問合せウィンドウの「Options」ページ」を参照してください。
  3. 問合せウィンドウで、SQL文を選択するか、SQL文にカーソルを置き、問合せウィンドウのツールバーからEXPLAIN PLANを選択します。選択したSQL文のEXPLAIN PLANの結果は、EXPLAIN PLANの結果タブに表示されます。

    EXPLAIN PLANは、1つのSQL文のみに適用できます。複数のSQL文を選択する場合、最後のSQL文のEXPLAIN PLANのみが表示されます。

  4. EXPLAIN PLANの結果がEXPLAIN PLAN出力ウィンドウに表示されます。結果はテキスト・ファイルまたは電子メールに切り取って貼り付けることができます。

EXPLAIN PLANの結果タブについて

SQL文のEXPLAIN PLANの結果は、ノードを使用したツリー構造で、必要に応じて展開できます。

「Operation」列は、常に表示されます。問合せウィンドウの「Options」ページの設定で、表示する他の列を決定します。EXPLAIN PLANオプションを変更して、他の列を確認できます。

「Operation」列にマウスを置くと、ツールチップにその行の操作の詳細が表示されます。前述の例では、行(SELECT文)にマウスを置くと、問合せエディタで選択している実行計画の結果の完全なSQL文を確認できます。

どの列をクリックしても、行全体が選択されます。

EXPLAIN PLANの取得時にエラーが発生した場合、エラー・メッセージがここに表示されます。

結果タブの列は、次の項「EXPLAIN PLANの列表」で説明します。

EXPLAIN PLANの列表

この表では、EXPLAIN PLANの結果タブで表示できる列を表示して説明しています。どの列が表示されるのかは、次の項「問合せウィンドウの「Options」ページ」で説明する、EXPLAIN PLANの「Options」ページの設定によって異なります。

説明

Operation

実行計画の操作。実行計画の完全なSQL文を表示するには、「Operation」列の下にあるSQL文セクションの最上位レベルの行にカーソルを置きます。ツールチップ・コントロールでSQLテキストを表示できます。

この列は、設定にかかわらず常に表示されます。

Optimizer

オプティマイザの現在のモード。デフォルトでは選択されています。

Cost

最適化により推定された、操作のコスト。表アクセス操作に対して、コストは指定されません。この列の値は、CPU_COSTおよびIO_COST列のファンクションですが、特定の測定単位がない場合、加重値のみが実行計画のコストの比較に使用されます。デフォルトでは選択されています。

Cardinality

最適化により推定された、操作によってアクセスされる行数。デフォルトでは選択されています。

Bytes

最適化により推定された、操作によってアクセスされるバイト数。デフォルトでは選択されています。

Partition Start

アクセスされたパーティションの範囲の開始パーティション。次のいずれかの値です:

  • nはSQLコンパイラが開始パーティションを識別しており、パーティション番号nを付与したことを示します。

  • KEYは、開始パーティションが実行時にパーティション・キー値から識別されることを示します。

  • ROW REMOVE_LOCATIONは、開始パーティション(終了パーティションもtrueになります)が、取得される各レコードの位置から実行時に算出されることを示します。レコードの位置は、ユーザーまたはグローバル索引によって取得されます。

  • INVALIDは、アクセスしたパーティションの範囲が空であることを示します。デフォルトでは選択されていません。

Partition Stop

PARTITION_STARTPARTITION_STOP列の値のペアを計算したステップです。デフォルトでは選択されていません。

CPU Cost

最適化により推定された、操作のCPUコスト。この列の値は、操作に必要なサイクルの数に比例します。ルールベースのアプローチを使用する文の場合、この列はnullです。デフォルトでは選択されています。

IO Cost

最適化により推定された、操作のI/Oコスト。この列の値は、操作で読み込まれるデータ・ブロックの数に比例します。ルールベースのアプローチを使用する文の場合、この列はnullです。デフォルトでは選択されています。

Access Predicates

アクセス構造内の行の検索に使用する述語。たとえば、索引範囲スキャン用の開始述語または停止述語です。デフォルトでは選択されていません。

Filter Predicates

生成前に行をフィルタするために使用する述語。デフォルトでは選択されていません。

Time

最適化により推定された操作の秒単位での経過時間。ルールベースのアプローチを使用する文の場合、この列はnullです。デフォルトでは選択されています。