7 PLAN_TABLEのリファレンス
この章では、PLAN_TABLE
列について説明します。
7.1 PLAN_TABLEの列
PLAN_TABLE
は、EXPLAIN PLAN
文によって移入されます。
次の表では、PLAN_TABLE
の列について説明します。
表7-1 PLAN_TABLE列
列 | データ型 | 説明 |
---|---|---|
|
|
|
|
|
データベース内の計画の一意の識別子です。 |
|
|
|
|
|
実行計画の各ステップに関連付けるコメント(最大80バイト)です。この列は、問合せに使用されたのがアウトラインであるか、SQLプロファイルかを示します。
|
|
|
このステップで実行された内部操作の名前です。文に対して生成された最初の行では、その列に次のいずれかの値が含まれる。
この列の値の詳細は、「PLAN_TABLEのOPERATION列とOPTION列」を参照してください。 |
|
|
この列の値の詳細は、「PLAN_TABLEのOPERATION列とOPTION列」を参照してください。 |
|
|
オブジェクト(表名またはビュー名)を参照するために使用されたデータベース・リンクの名前です。パラレル実行を指定したローカル問合せの場合、この列は、処理からの出力をデータベースが使用する順序を説明します。 |
|
|
表または索引を含むスキーマを所有しているユーザーの名前です。 |
|
|
表または索引の名前です。 |
|
|
SQL文に含まれる表またはビューの一意の別名。索引の場合は、基礎となる表のオブジェクトの別名。 |
|
|
元の文に指定されているオブジェクトの位置に対応する順番を示す数値です。番号付けは、元の文テキストの左から右へ、外側から内側へと行われます。ビューを展開した場合、この数値は予測できない。 |
|
|
オブジェクトに関する情報を示す修飾子(索引に対する |
|
|
オプティマイザの現行モードです。 |
|
|
現在は使用されていません。 |
|
|
実行計画の各ステップに割り当てられた番号です。 |
|
|
|
|
|
計画が示す行ソース・ツリー内の操作の深さ。この値を使用して、PLAN TABLEレポートの行をインデントできます。 |
|
|
最初の出力行の場合、この列は文の実行に見積もられたコストを示します。その他の行の場合は、同じ親の他の子に対応する相対位置を示す。 |
|
|
オプティマイザによって見積もられた操作コストです。表アクセス操作のコストは判断されない。この列の値には、特定の単位はなく、実行計画のコストを比較するために使用される重み値を示します。この列の値は、 |
|
|
この操作がアクセスした行数の問合せ最適化アプローチによる見積りです。 |
|
|
この操作がアクセスしたバイト数の問合せ最適化アプローチによる見積りです。 |
|
|
|
|
|
アクセスしたパーティションの範囲のパーティションを開始します。次のいずれかの値を指定できます。 nは、開始パーティションがSQLコンパイラで識別され、そのパーティション番号がnで示されることを意味します。
|
|
|
アクセスされるパーティションの範囲の停止パーティション。次のいずれかの値を指定できます。 nは、終了パーティションがSQLコンパイラで識別され、そのパーティション番号がnで示されることを意味します。
|
|
|
|
|
|
ユーザーにとって有効な実行ステップに関するその他の情報です。 |
|
|
プロデューサ問合せサーバーからコンシューマ問合せサーバーへ行を分配する方法です。 この列に使用可能な値の詳細は、「PLAN_TABLEのDISTRIBUTION列」を参照してください。コンシューマ問合せサーバーおよびプロデューサ問合せサーバーの詳細は、Oracle Database VLDBおよびパーティショニング・ガイドを参照してください。 |
|
|
オプティマイザによって見積もられた操作のCPUコスト。この列の値は、操作に必要なマシン・サイクル数に比例する。ルールベースのアプローチを使用する文の場合、この列はNULLです。 |
|
|
オプティマイザによって見積もられた操作のI/Oコスト。この列の値は、操作で読み込まれるデータ・ブロック数に比例する。ルールベースのアプローチを使用する文の場合、この列はNULLです。 |
|
|
オプティマイザによって見積られた、操作で使用される一時領域をバイト単位で表したものです。ルールベース・アプローチを使用する文の場合、または一時領域を使用しない操作の場合、この列はNULLです。 |
|
|
アクセス構造内の行の検索に使用する述語。たとえば、開始述語または停止述語は索引レンジ・スキャンに使用。 |
|
|
フィルタにかけた後で行を生成する場合に使用する述語です。 |
|
|
操作によって生成される式です。 |
|
|
問合せの最適化によって見積られた操作の秒単位の経過時間です。ルールベースのアプローチを使用する文の場合、この列はNULLです。 |
|
|
問合せブロックの名前です。システム生成または |
「PLAN_TABLEのOPERATION列とOPTION列」には、EXPLAIN PLAN
文によって生成されるOPERATION
とOPTIONS
の各組合せと、その実行計画におけるそれぞれの意味を示します。
関連項目:
PLAN_TABLE
の詳細は、Oracle Databaseリファレンスを参照してください。
7.2 PLAN_TABLEのOPERATION列とOPTION列
この表は、PLAN_TABLEのOPERATION列とOPTIONS列の各組合せおよびその実行計画におけるそれぞれの意味を示しています。
表7-2 EXPLAIN PLANによって生成されるOPERATION値とOPTIONS値
操作 | オプション | 説明 |
---|---|---|
|
|
複数のROWIDのセットを受け取り、重複をなくして、そのセットの共通部分を戻す処理。この処理は単一列索引のアクセス・パスに対して使用されます。 |
|
|
|
|
|
|
|
|
レンジ・スキャンの結果の複数のビットマップを1つのビットマップにマージします。 |
|
|
片方のビットマップのビットを、もう一方のビットマップから減算します。行ソースは否定述語に対して使用されます。このオプションは、減算が発生する可能性があるビットマップを作成する非否定述語がある場合にのみ使用できます。 |
|
|
2つのビットマップのビット単位の |
|
|
2つのビットマップのビット単位の |
|
|
表の行ソースから各行を取り出し、ビットマップ索引から対応するビットマップを検索します。その後、このビットマップのセットは、次の |
|
|
|
|
|
複数の行のセットを受け取り、そのセットのUNION-ALLを戻す処理。 |
|
|
表から選択された行の数をカウントする処理。 |
|
|
戻される行数を |
|
|
左側の表またはビューおよび右側のキューブを結合します。
|
|
|
左側の表またはビューおよび右側のキューブに対してアンチ結合を使用します。 |
|
|
左側の表またはビューおよび右側のキューブに対してアンチ結合(片面NULL対応)を使用します。右側の結合列(キューブ側)は |
|
|
左側の表またはビューおよび右側のキューブに対して外部結合を使用します。 |
|
|
左側の表またはビューおよび右側のキューブに対して右側セミ結合を使用します。 |
|
|
すべてのキューブ・アクセスで内部結合を使用します。 |
|
|
少なくとも1つのディメンションで外部結合を使用し、その他のディメンションで内部結合を使用します。 |
|
|
すべてのキューブ・アクセスで外部結合を使用します。 |
|
|
ドメイン索引からの1つ以上のROWIDの取出し。オプション列には、ユーザー定義ドメイン・インデックス・コスト関数から与えられた情報が含まれています。 |
|
|
行のセットを受け取り、そのいくつかを取り除き、残りを戻す処理。 |
|
|
問合せで選択される最初の行のみの取出し。 |
|
|
|
|
|
|
|
|
|
(これらは結合操作です。) |
|
2つのセットの行を結合し、結果を戻す操作。この結合方法は、データのラージ・データ・セット(DSSやバッチなど)の結合に役立ちます。この結合条件は、第2の表にアクセスする場合に有効です。 問合せオプティマイザは、2つの表またはデータ・ソースの小さいほうを使用して、メモリー内に結合キーについてのハッシュ表を作成します。次に、大きいほうの表をスキャンし、ハッシュ表を調べて結合された行を見つけます。 |
|
|
ハッシュ(左側)アンチ結合 |
|
|
ハッシュ(左側)セミ結合 |
|
|
ハッシュ右側アンチ結合 |
|
|
ハッシュ右側セミ結合 |
|
|
ハッシュ(左側)外部結合。 |
|
|
ハッシュ(右側)外部結合。 |
(これらはアクセス方法です。) |
|
索引からの単一のROWIDの取出し。 |
|
|
索引からの1つ以上のROWIDの取出し。索引値は昇順でスキャンされます。 |
|
|
索引からの1つ以上のROWIDの取出し。索引値は降順でスキャンされます。 |
|
|
スタート・キーおよびストップ・キーがない場合の、索引からのすべてのROWIDの取得。索引値は昇順でスキャンされます。 |
|
|
スタート・キーおよびストップ・キーがない場合の、索引からのすべてのROWIDの取得。索引値は降順でスキャンされます。 |
|
|
マルチブロックREADを使用した全ROWID(および列の値)の取得。ソート順は定義できません。索引付けされた列に対してのみ、全表スキャンと比較されます。コストベース・オプティマイザでのみ使用可能です。 |
|
|
索引内の先頭列を使用しない、連結索引からのROWIDの取得。コストベース・オプティマイザでのみ使用可能です。 |
|
|
|
|
|
2つの行のセットを受け取り、重複をなくして、そのセットの共通部分を戻す処理。 |
(これらは結合操作です。) |
|
2つの行のセットを受け取り、それぞれを特定の値でソートし、一方のセットの各行を他方の行と突き合せて結合し、その結果を戻す処理。 |
|
|
外部結合文を実行するマージ結合処理。 |
|
|
マージ・アンチ結合。 |
|
|
マージ・セミ結合。 |
|
|
文中に他の表への結合条件を持たない1つ以上の表について発生する操作です。結合とともに発生する可能性がありますが、計画内では |
|
|
|
(これらはアクセス方法です。) |
|
マテリアライズド・ビューのすべての行の取出し。 |
|
|
マテリアライズド・ビューのサンプル行の取出し。 |
|
|
索引クラスタのキーの値に基づいた、マテリアライズド・ビューからの行の取出し。 |
|
|
ハッシュ・クラスタのキーの値に基づいた、マテリアライズド・ビューからの行の取出し。 |
|
|
ROWID範囲に基づいたマテリアライズド・ビューからの行の取出し。 |
|
|
ROWID範囲に基づいたマテリアライズド・ビューからのサンプル行の取出し。 |
|
|
ユーザー指定のROWIDを使用してマテリアライズド・ビューの行が指定される場合。 |
|
|
マテリアライズド・ビューがパーティション化されておらず、索引を使用して行が指定される場合。 |
|
|
マテリアライズド・ビューがパーティション化されており、グローバル索引のみを使用して行が指定される場合。 |
|
|
マテリアライズド・ビューがパーティション化されており、1つ以上のローカル索引と、場合によってはいくつかのグローバル索引を使用して行が指定される場合。 パーティション区間: パーティション区間は次のようにして計算されている可能性があります。 前の
|
|
|
2つの行のセットを受け取り、最初のセットにあって2番目のセットにない行を戻して、重複をなくす処理。 |
(これらは結合操作です。) |
|
外側のセットと内側のセット、2つの行のセットを受け取る処理。Oracle Databaseは、外側のセットの各行を内側のセットの各行と比較し、条件を満たす行を戻します。この結合方法は、小さいサブセットのデータを結合する場合(OLTP)に役立ちます。この結合条件は、第2の表にアクセスする場合に有効です。 |
|
|
外部結合文を実行するネステッド・ループ操作。 |
|
|
|
|
|
1つのパーティションへのアクセス。 |
|
|
多数のパーティション(サブセット)へのアクセス。 |
|
|
すべてのパーティションへのアクセス。 |
|
|
|
|
|
アクセスするよう設定されているパーティションが空であることを示します。 |
POLYMORPHIC TABLE FUNCTION |
|
多相表関数の行ソースを示します。これは、戻り型が引数によって決定される表関数です。 |
|
|
パラレル実行サーバー・セット間でのブロックまたはチャンク範囲へのオブジェクトの分割を実装します。 |
|
|
パラレル実行サーバーを使用して下位のパラレル計画を制御、スケジュールおよび実行する問合せコーディネータを実装します。また、パラレルに実行され、常に下位に |
|
|
セマンティクスは通常の |
|
|
PX SENDノード上で実行される送信側/プロデューサ(QCまたはパラレル実行サーバー)から再パーティション化されたデータを読み取る、コンシューマ/受信側パラレル実行ノードを示します。以前は、この情報は |
|
|
スレーブの2つのパラレル実行サーバー・セットの間における配分方法を実装します。2つのセット間の境界と、送信側/プロデューサ側(QCまたはスレーブ)でのデータのパーティション化方法を示します。以前は、この情報は |
|
|
リモート・データベースからのデータの取出し。 |
|
|
順序値のアクセスを伴う処理。 |
|
|
選択した行のセットにグループ関数を適用した後の単一行の取得。この場合、データベースは単一の行を「ソート」します。 |
|
|
行のセットをソートし、重複をなくす処理。 |
|
|
|
|
|
|
|
|
マージ結合の前に、一連の行をソートする操作。 |
|
|
|
(これらはアクセス方法です。) |
|
表のすべての行の取出し。 |
|
|
表のサンプル取得された行の取出し。 |
|
|
索引クラスタのキーの値に基づいた、表からの行の取出し。 |
|
|
ハッシュ・クラスタのキーの値に基づいた、表からの行の取出し。 |
|
|
ROWID範囲に基づいた表からの行の取出し。 |
|
|
ROWID範囲に基づいた表からのサンプル行の取出し。 |
|
|
ユーザー指定のROWIDを使用して表の行が指定される場合。 |
|
|
表がパーティション化されておらず、索引を使用して行が指定される場合。 |
|
|
表がパーティション化されており、グローバル索引のみを使用して行が指定される場合。 |
|
|
表がパーティション化されており、1つ以上のローカル索引と場合によってはいくつかのグローバル索引を使用して、行が指定される場合。 パーティション区間: パーティション区間は次のようにして計算されている可能性があります。 前の
|
|
|
|
|
|
2つの行のセットを受け取り、重複をなくして、そのセットの連結結果を戻す処理。 |
|
|
列から行にデータを回転させる操作。 |
|
|
ビューの問合せを実行し、結果の行を別の処理に戻す処理。 |
7.3 PLAN_TABLEのDISTRIBUTION列
DISTRIBUTION
列は、プロデューサ問合せサーバーからコンシューマ問合せサーバーに行を分散するために使用されたメソッドを示します。
表7-3 PLAN_TABLEのDISTRIBUTION列の値
DISTRIBUTIONテキスト | 説明 |
---|---|
|
|
|
列のセットを使用し、表または索引のパーティション化に基づいて行を問合せサーバーにマップします。パーシャル・パーティション・ワイズ結合、 |
|
結合キーについて、ハッシュ関数を使用して、行を問合せサーバーにマップします。 |
|
ソート・キーの範囲を使用して、行を問合せサーバーにマップします。文に |
|
行を問合せサーバーにランダムにマップします。 |
|
表全体の行を各問合せサーバーにブロードキャストします。ある表がその他の表に比べて非常に小さい場合、パラレル結合に使用します。 |
|
QCは、最初の問合せサーバーから最後の問合せサーバーまで順番に入力データを受け取ります。文に |
|
QCは、入力をランダムに受け取ります。文に |