9
SQL Server IN เทียบกับ EXISTS Performance
ฉันสงสัยว่าข้อใดต่อไปนี้จะมีประสิทธิภาพมากกว่ากัน ฉันมักจะระมัดระวังในการใช้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])