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 の使用法 » クエリ処理 » クエリの最適化と実行 » クエリ実行アルゴリズム » アルゴリズムの種類 » ジョイン・アルゴリズム

 

HashAntisemijoin アルゴリズム (JHA)

HashAntisemijoin は、左側と右側の非セミジョインを実行します。右側のローは、結果に表示される左側のローを決定するためだけに使用されます。HashAntisemijoin では、右側のローを読み込んでイン・メモリ・ハッシュ・テーブルが作成されます。その後、左側の各ローによってこのテーブルが調査されます。右側のどのローとも一致しない左側のローだけが出力されます。HashAntisemijoin は、非ジョインとして書き換えることができる限定 (NOT IN、ALL、NOT EXISTS) のネストされたクエリのテーブル式がジョインの入力に含まれる場合に使用されます。右側のインデックス検索を低コストにする適切なインデックスが存在しない場合は、HashAntisemijoin の方が、限定のクエリを参照する探索条件の評価よりパフォーマンスに優れています。

HashJoin と同様に、操作を完了するのに十分なキャッシュ・メモリがない場合は、HashAntisemijoin がネスト・ループ方式に戻ることがあります。この場合は、パフォーマンス・カウンタの値が増分されます。このモニタ値を読むには、QueryLowMemoryStrategy データベースまたは接続プロパティ、または Windows パフォーマンス・モニタの [クエリ:メモリ不足時方式] カウンタを使用します。

HashAntisemijoin 演算子で使用できるメモリ容量は、サーバのマルチプログラミング・レベルとアクティブな接続の数によって異なります。SQL Anywhere でのスレッドデータベース・サーバのマルチプログラミング・レベルの設定を参照してください。

注意

Windows パフォーマンス・モニタは、Windows Mobile では使用できません。

詳細については、接続プロパティの「QueryLowMemoryStrategy」を参照してください。