ข้อใดอธิบายความหมายของ EXISTS และ IN โดยไม่เหมารวมเรื่องประสิทธิภาพ

IN เหมาะกับการตรวจสอบค่าในรายการขนาดเล็ก ส่วน EXISTS เหมาะกับการตรวจสอบค่าในรายการขนาดใหญ่เท่านั้น โดยไม่มีผลต่อ NULL
EXISTS ตรวจว่ามีอย่างน้อยหนึ่งแถว ส่วน IN เปรียบเทียบค่ากับชุดค่าจาก subquery และ NULL อาจมีผลต่อสามค่าความจริง
EXISTS และ IN ให้ผลลัพธ์เหมือนกันทุกกรณี และมีประสิทธิภาพเท่ากันเสมอ
EXISTS เร็วกว่า IN เสมอโดยไม่ขึ้นกับ optimizer, index หรือข้อมูล

เฉลยอธิบาย

EXISTS สนใจการมีอยู่ของแถว ส่วน IN ตรวจสมาชิกในชุดค่า Optimizer อาจแปลงทั้งสองเป็นแผนคล้ายกันจึงตัดสินความเร็วจากรูปคำสั่งอย่างเดียวไม่ได้ และต้องระวัง NULL โดยเฉพาะ NOT IN

ข้อสอบอื่นในวิชาการใช้ภาษา SQL

ดูข้อสอบวิชานี้ทั้งหมด →