web-dev-qa-db-ja.com

INNER JOINの代わりにINNER -LOOP- JOINを使用する場合

今日、SQL Serverで INNER LOOP JOIN と呼ばれるものについて学びました。

これは何を意味するのでしょうか? (Googleは役に立たない..または言うべきか...それに関するブログの投稿は少し技術的で、私の心を吹き飛ばしています)。

また、標準のINNER LOOP JOINよりもINNER JOINを使用することをお勧めするいくつかの一般的なシナリオは何ですか?

30
Pure.Krome

ループ|ハッシュ| MERGEは結合ヒントであり、クエリの結合でループ、ハッシュ、またはマージを使用することを指定します。 LOOPの使用| HASH | MERGE JOINは、2つのテーブル間の特定の結合を強制します。 LOOPをRIGHTまたはFULLと一緒に結合タイプとして指定することはできません。

常にINNER JOINを使用する必要があります。クエリオプティマイザがLOOP、MERGE、またはHASH結合を実行するかどうかを決定します。ほとんどすべての場合、オプティマイザはより良い判断をします。どちらが使用され、いつ私のプレゼンテーションから見つけることができますか http://sqlbits.com/Sessions/Event4/Understanding_Graphical_Execution_Plans

24
Ash

あなたが参照しているのは join hint です。他のヒントと同様に、ほとんどの場合SQLサーバーは正しいアルゴリズムを選択するため、結合ヒントは最後の手段としてのみ指定する必要があります。それのいくつかを説明する良い記事は this です。

8
amit_g