Saya penasaran manakah dari berikut ini yang akan lebih efisien?
Saya selalu berhati-hati dalam menggunakan INkarena saya percaya SQL Server mengubah hasil yang ditetapkan menjadi IFpernyataan besar . Untuk kumpulan hasil yang besar, ini dapat mengakibatkan kinerja yang buruk. Untuk kumpulan hasil kecil, saya tidak yakin mana yang lebih disukai. Untuk kumpulan hasil yang besar, bukankah EXISTSlebih efisien?
WHERE EXISTS (SELECT * FROM Base WHERE bx.BoxID = Base.BoxID AND [Rank] = 2)
vs.
WHERE bx.BoxID IN (SELECT BoxID FROM Base WHERE [Rank = 2])
select 1 from Base...di Anda where existskarena Anda tidak benar-benar peduli tentang hasil, hanya saja berturut-turut benar-benar ada.