ข้อจำกัดความรับผิดชอบ: ทุกอย่างด้านล่างเป็นเพียงเรื่องเล็กน้อยและดึงมาจากประสบการณ์ส่วนตัวของฉันโดยตรง ใครก็ตามที่รู้สึกว่าต้องทำการวิเคราะห์เชิงประจักษ์อย่างเข้มงวดมากขึ้นสามารถดำเนินการได้และลงคะแนนถ้าฉัน ฉันทราบด้วยว่า SQL เป็นภาษาที่เปิดเผยและคุณไม่ควรต้องพิจารณาว่าโค้ดของคุณได้รับการประมวลผลอย่างไรเมื่อคุณเขียน แต่เพราะฉันให้ความสำคัญกับเวลาของฉันฉันจึงทำ
มีงบเทียบเท่าตรรกะที่ไม่มีที่สิ้นสุด แต่ฉันจะพิจารณาสาม (ish)
กรณีที่ 1: การเปรียบเทียบสองรายการในลำดับมาตรฐาน (แก้ไขลำดับการประเมินผล)
A> = MinBound และ A <= MaxBound
กรณีที่ 2: น้ำตาลสังเคราะห์ (ผู้เขียนไม่ได้เลือกลำดับการประเมิน)
ระหว่าง MinBound และ MaxBound
กรณีที่ 3: การเปรียบเทียบสองรายการตามลำดับการศึกษา (ลำดับการประเมินที่เลือกในเวลาเขียน)
A> = MinBound และ A <= MaxBound
หรือ
A <= MaxBound และ A> = MinBound
จากประสบการณ์ของฉันกรณีที่ 1 และกรณีที่ 2 ไม่มีความแตกต่างที่สอดคล้องกันหรือโดดเด่นในด้านประสิทธิภาพเนื่องจากเป็นเรื่องที่ไม่รู้
อย่างไรก็ตามกรณีที่ 3 สามารถปรับปรุงเวลาในการดำเนินการได้อย่างมาก โดยเฉพาะอย่างยิ่งหากคุณกำลังทำงานกับชุดข้อมูลขนาดใหญ่และมีความรู้เกี่ยวกับฮิวริสติกบางอย่างเกี่ยวกับว่าAมีแนวโน้มที่จะมากกว่าMaxBoundหรือน้อยกว่าMinBoundคุณสามารถปรับปรุงเวลาในการดำเนินการได้อย่างเห็นได้ชัดโดยใช้กรณีที่ 3 และสั่งการเปรียบเทียบ ตามนั้น
กรณีการใช้งานหนึ่งที่ฉันมีคือการค้นหาชุดข้อมูลในอดีตขนาดใหญ่ที่มีวันที่ที่ไม่ได้จัดทำดัชนีสำหรับระเบียนภายในช่วงเวลาที่กำหนด เมื่อเขียนแบบสอบถามฉันจะมีความคิดที่ดีว่ามีข้อมูลมากกว่านี้หรือไม่ก่อนช่วงเวลาที่กำหนดหรือหลังจากช่วงเวลาที่ระบุและสามารถสั่งการเปรียบเทียบของฉันได้ตามนั้น ฉันมีเวลาในการดำเนินการลดลงมากถึงครึ่งหนึ่งขึ้นอยู่กับขนาดของชุดข้อมูลความซับซ้อนของแบบสอบถามและจำนวนระเบียนที่กรองโดยการเปรียบเทียบครั้งแรก