SQL Server IN vs. EXISTS パフォーマンス 質問する

SQL Server IN vs. EXISTS パフォーマンス 質問する

以下のどれがより効率的か興味があります。

IN私は、SQL Server が結果セットを大きなステートメントに変換すると考えているため、使用には常に少し慎重でしたIF。結果セットが大きい場合、パフォーマンスが低下する可能性があります。結果セットが小さい場合、どちらが好ましいかはわかりません。結果セットが大きい場合、EXISTSより効率的ではないでしょうか?

WHERE EXISTS (SELECT * FROM Base WHERE bx.BoxID = Base.BoxID AND [Rank] = 2)

WHERE bx.BoxID IN (SELECT BoxID FROM Base WHERE [Rank = 2])

ベストアンサー1

EXISTSエンジンがヒットを見つけると、条件が満たされたと証明されて検索を停止するため、処理が速くなります。

を使用するとIN、さらに処理する前にサブクエリからのすべての結果を収集します。

おすすめ記事