Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » クエリとデータ修正 » クエリ » 高度:クエリ実行プラン

 

実行プランのコンポーネント

次に、実行プランに表示される省略形を示します。

プランに表示されるアルゴリズムの詳細については、ホワイトペーパー『Query Processing Based on SQL Anywhere 12.0.1 Architecture』 ([external link] http://www.sybase.com/detail?id=1096047) を参照してください。

短いテキストプラン 長いテキストプラン その他の情報
見積り済み最良プラン オプティマイザは、特定のクエリのアクセスプランを生成してコストを計算します。この処理の最中、現在の最良プランが、より低いコストが推定される新しい最良プランで置き換えられる場合があります。最後の最良プランが、文の実行に使用する実行プランになります。見積り済み最良プランは、現在の最良プランよりも優れたプランをオプティマイザが検出した回数を示しています。数字が小さい場合は、最良プランが列挙プロセスの早い段階で決定されたことを示しています。オプティマイザは特定の文のクエリブロックごとに 1 回以上の列挙プロセスを起動するため、見積り済み最良プランは累積回数を表します。
見積り済みプラン オプティマイザによって生成される多数のプランが、それまでに検出された最良プランと比較してコストが高いと判断されます。見積り済みプランは、指定された文の列挙プロセスの最中にオプティマイザが検討した一部のプランまたは完全なプランの数を表します。
** ** 完全なインデックススキャン。インデックススキャンではすべてのローが読み込まれます。
DELETE Delete 削除操作のルートノード。
DistH HashDistinct HashDistinct は 1 つの入力を受け取り、すべての排他ローを返します。
DistO OrderedDistinct OrderedDistinct では、各ローが読み込まれ、前のローと比較されます。両者が同じであれば後の入力ローは無視され、それ以外の場合は出力されます。
DP DecodePostings DecodePostings は、テキストインデックス内の単語の位置情報を復号化します。
DT DerivedTable DerivedTable は、特にクエリに 1 つ以上の外部ジョインが含まれる場合に、クエリ書き換え最適化などのさまざまな理由でプランに表示される場合があります。
EAH HashExceptAll

SQL の集合差異演算子 EXCEPT のハッシュベースの実装が使用されたことを示します。

EAM MergeExceptAll

SQL の集合差異演算子 EXCEPT のソートベースの実装が使用されたことを示します。

EH HashExcept

SQL の集合差異演算子 EXCEPT のハッシュベースの実装が使用されたことを示します。

EM MergeExcept

SQL の集合差異演算子 EXCEPT のソートベースの実装が使用されたことを示します。

Exchange Exchange

SELECT 文の処理時にクエリ内並列処理が使用されたことを示します。

Filter Filter

任意のタイプの述部、subselect を含む比較、EXISTS と NOT EXISTS の各サブクエリ (その他の形式の限定サブクエリ) などの探索条件の適用を示します。

GrByH HashGroupBy

HashGroupBy では、グループごとに 1 つのローで構成されるインメモリハッシュテーブルが構築されます。入力ローが読み込まれると、ワークテーブル内で関連グループが検索されます。集合関数が更新され、グループローがワークテーブルに再び書き込まれます。グループレコードが見つからなければ、新しいグループレコードが初期化され、ワークテーブルに挿入されます。

GrByHClust HashGroupByClustered

入力テーブルのグループ化カラム内の値はクラスタ化されているため、似た値が互いに近接して現れることがあります。ClusteredHashGroupBy は、このクラスタ化を利用します。

GrByHP ParallelHashGroupBy

HashGroupBy の変形。

GrByHSets HashGroupBySets

GROUPING SETS クエリを実行する場合、HashGroupBy の変形である HashGroupBySets が使用されます。

GrByO OrderedGroupBy

OrderedGroupBy では、グループ化カラムによって順序付けされた入力が読み込まれます。各ローは、読み込まれるたびに前のローと比較されます。グループ化カラムが一致すると、現在のグループが更新されます。それ以外の場合は、現在のグループが出力され、新しいグループが開始されます。

GrByOSets OrderedGroupBySets

GROUPING SETS クエリを実行する場合、OrderedGroupBy の変形である OrderedGroupBySets が使用されます。

GrByS SingleRowGroupBy

GROUP BY を指定しなければ、単一ローの集合の生成に SingleRowGroupBy が使用されます。各入力ローに対して単一のグループローがメモリに格納され、更新されます。

GrBySSets SortedGroupBySets

SortedGroupBySets は、GROUPING SETS を含む OLAP クエリを処理する場合に使用されます。

HF HashFilter

ハッシュフィルタ (ブルームフィルタ) が使用されたことを示します。

HFP ParallelHashFilter

ハッシュフィルタ (ブルームフィルタ) が使用されたことを示します。

HTS HashTableScan

ハッシュテーブルスキャンが使用されたことを示します。

IAH HashIntersectAll

SQL の集合差異演算子 INTERSECT のハッシュベースの実装が使用されたことを示します。

IAM MergeIntersectAll

SQL の集合差異演算子 INTERSECT のソートベースの実装が使用されたことを示します。

IH HashIntersect

SQL の集合差異演算子 INTERSECT のハッシュベースの実装が使用されたことを示します。

IM MergeIntersect

SQL の集合差異演算子 INTERSECT のソートベースの実装が使用されたことを示します。

IN InList

InList は、インデックスを使用して IN リスト述部を満たすことができる場合に使用されます。

table-name<index-name>

IndexScan、ParallelIndexScan グラフィカルなプランで、インデックススキャンの場合は台形の中にインデックス名が表示されます。
INSENSITIVE Insensitive
INSERT Insert INSERT 操作のルートノード。
IO IndexOnlyScan、ParallelIndexOnlyScan

クエリを満たすために必要なすべてのデータを含んだインデックスをオプティマイザが使用したことを示します。

JH HashJoin

HashJoin は、2 つの入力のうち小さい方のインメモリハッシュテーブルを作成してから、大きい方の入力を読み込みます。次に、インメモリハッシュテーブルを調査して一致するローを検索します。見つかったローはワークテーブルに書き込まれます。小さい方の入力がメモリに収まらない場合は、HashJoin によって両方の入力が小さなワークテーブルに分割されます。これらの小さくなったワークテーブルは、小さい方の入力がメモリに収まるようになるまで再帰的に処理されます。

JHS HashSemijoin

HashSemijoin は、左側と右側のセミジョインを実行します。

JHSP ParallelHashSemijoin

HashJoin の変形。

JHFO Full Outer HashJoin

HashJoin の変形。

JHA HashAntisemijoin

HashAntisemijoin は、左側と右側の非セミジョインを実行します。

JHAP ParallelHashAntisemijoin

HashJoin の変形。

JHO Left Outer HashJoin

HashJoin の変形。

JHP ParallelHashJoin

HashJoin の変形。

JHPO ParallelLeftOuterHashJoin

HashJoin の変形。

JHR RecursiveHashJoin

HashJoin の変形。

JHRO RecursiveLeftOuterHashJoin

HashJoin の変形。

JM MergeJoin

MergeJoin は 2 つの入力を読み込みます。このとき、2 つの入力はどちらもジョイン属性で順序付けされています。左側の入力のローごとに、右側の入力のローにソート順にアクセスすることで、一致する右側のローをすべて読み込みます。

JMFO Full Outer MergeJoin

MergeJoin の変形。

JMO Left Outer MergeJoin

MergeJoin の変形。

JNL NestedLoopsJoin

NestedLoopsJoin では、左側のローごとに右側全体が読み込まれ、左側と右側のジョインが計算されます。

JNLA NestedLoopsAntisemijoin

NestedLoopsAntisemijoin は左側のローごとに右側をスキャンして、入力をジョインします。

JNLFO Full Outer NestedLoopsJoin

NestedLoopsJoin の変形。

JNLO Left Outer NestedLoopsJoin

NestedLoopsJoin の変形。

JNLS NestedLoopsSemijoin

NestedLoopsSemijoin は左側のローごとに右側をスキャンして、入力をジョインします。

KEYSET Keyset

キーセット駆動型カーソルを指定します。

LOAD Load

ロード操作のルートノード。

MultiIdx MultipleIndexScan

論理演算子 AND または OR で組み合わされた探索条件のセットを含むクエリを満たすために、複数のインデックスを使用できる、または使用する必要がある場合は、MultipleIndexScan を使用します。

OpenString OpenString

OpenString は、OPENSTRING 句を含む SELECT 文の FROM 句で使用されます。

Optimization Time 指定された文のすべての列挙プロセスにオプティマイザが費やした合計時間。
PC ProcCall プロシージャコール (テーブル関数)。
PreFilter PreFilter

フィルタでは、任意のタイプの述部、subselect を含む比較、EXISTS と NOT EXISTS の各サブクエリ (その他の形式の限定サブクエリ) などの探索条件が適用されます。

R R リバースインデックススキャン。インデックススキャンでローがインデックスから逆の順序で読み込まれます。
RL RowLimit

RowLimit は、入力の最初の n 個のローを返し、残りのローは無視します。ローの制限は、SELECT 文の TOP n または FIRST 句によって設定されます。

ROWID RowIdScan グラフィカルなプランで、ロー ID スキャンの場合は長方形の中にテーブル名が表示されます。
ROWS RowConstructor

RowConstructor は、他のアルゴリズムへの入力として使用できる仮想ローを作成する特殊な演算子です。

RR RowReplicate

RowReplicate は、EXCEPT ALL や INTERSECT ALL などの集合操作の実行時に使用されます。

RT RecursiveTable 再帰テーブルがクエリ内の WITH 句の結果として使用されたことを示します。WITH 句は、再帰的な UNION クエリに使用されました。
RU RecursiveUnion

RecursiveUnion は、再帰的な UNION クエリの実行中に使用されます。

SELECT Select 選択操作のルートノード。
seq TableScan、ParallelTableScan グラフィカルなプランで、テーブルスキャンの場合は長方形の中にテーブル名が表示されます。
Sort Sort インデックスソートまたはマージソート。
SrtN SortTopN

SortTopN は、TOP N 句と ORDER BY 句を含むクエリで使用されます。

TermBreak TermBreak 全文検索の TermBreaker アルゴリズム。
UA UnionAll

UnionAll では、重複に関係なく各入力からローが読み込まれ、出力されます。このアルゴリズムは、UNION 文と UNION ALL 文を実装するために使用されます。

UPDATE Update 更新操作のルートノード。
Window Window

Window は、Window 関数を使用する OLAP クエリを評価する場合に使用します。

Work Work table 中間結果を表す内部ノード。
 [オプティマイザ統計] フィールドの説明
 [ノード統計] フィールドの説明
 プランに使用される一般的な統計
 プランに使用される一般的な推定
 SELECT、INSERT、UPDATE、DELETE に関連するプランの項目
 ロックに関連するプランの項目
 スキャンに関連するプランの項目
 インデックススキャンに関連するプランの項目
 ジョイン、フィルタ、事前フィルタに関連するプランの項目
 ハッシュフィルタに関連するプランの項目
 UNION に関連するプランの項目
 GROUP BY に関連するプランの項目
 DISTINCT に関連するプランの項目
 IN リストに関連するプランの項目
 SORT に関連するプランの項目
 ロー制限に関連するプランの項目
 参照