以下のどれがより効率的であるか知りたいですか?
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])
select 1 from Base...
、where exists
実際には結果を気にせず、行が実際に存在するということだけを考慮してください。