1
คอลัมน์ที่คำนวณอย่างต่อเนื่องทำให้เกิดการสแกน
การแปลงคอลัมน์ปกติเป็นคอลัมน์ที่คำนวณแล้วยังคงเป็นสาเหตุให้แบบสอบถามนี้ไม่สามารถค้นหาดัชนีได้ ทำไม? ทดสอบกับ SQL Server หลายเวอร์ชันรวมถึง 2016 SP1 CU1 Repros ด้วยคอลัมน์ที่คำนวณ ด้วยคอลัมน์ปกติ ปัญหาคือมี,table1col7 ตารางและแบบสอบถามเป็นต้นฉบับบางส่วน (และง่าย) ของต้นฉบับ ฉันทราบว่าคำถามอาจถูกเขียนใหม่แตกต่างกันและด้วยเหตุผลบางอย่างหลีกเลี่ยงปัญหา แต่เราจำเป็นต้องหลีกเลี่ยงการสัมผัสรหัสและคำถามที่ว่าทำไมtable1ไม่สามารถค้นหายังคงยืนอยู่ ดังที่ Paul White แสดงให้เห็น (ขอบคุณ!) การแสวงหานั้นจะเกิดขึ้นหากถูกบังคับดังนั้นคำถามคือ: ทำไมเครื่องมือเพิ่มประสิทธิภาพจึงไม่ได้ถูกเลือกโดยเครื่องมือเพิ่มประสิทธิภาพและไม่ว่าเราจะสามารถทำสิ่งที่แตกต่างออกไป รหัส? เพื่อชี้แจงส่วนที่มีปัญหานี่คือการสแกนที่เกี่ยวข้องในแผนการดำเนินการที่ไม่ดี: