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

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » クエリ処理 » クエリの最適化と実行 » クエリ実行アルゴリズム » アルゴリズムの種類 » ジョイン・アルゴリズム

 

MergeJoin アルゴリズム (JM、JMFO、JMO)

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

入力がまだジョイン属性によって順序付けされていない場合 (以前のマージ・ジョインがあるため、または探索条件を満たすためにインデックスが使用されたためなど)、オプティマイザはソートを追加して正しいロー順を生成します。このソートによってマージ・ジョインにコストが追加されます。

MergeJoin が HashJoin より優れているのは、マージ・ジョインが同じ属性を対象としている場合に、ソートによるコストを複数のジョインに分散できることです。入力のサイズが同じと思われる場合、またはソートによるコストを複数の操作に分散できる場合、オプティマイザは HashJoin より MergeJoin を選択します。