บ่อยครั้งที่ฉันต้องการเรียกใช้แบบสอบถามกับตารางขนาดใหญ่ที่ไม่มีดัชนีที่ถูกต้อง ดังนั้นฉันขอให้ DBA สร้างดัชนีดังกล่าว สิ่งแรกที่เขาทำคือดูที่ตารางสถิติและดูขนาดพื้นที่ดัชนี
บ่อยครั้งที่เขาจะบอกให้ฉันหาวิธีแก้ปัญหาทางเลือกเพราะ "ดัชนีนั้นใหญ่กว่าตาราง" เขารู้สึกว่าดัชนีต้องเล็กกว่าข้อมูลเพราะเขาบอกฉันว่า "คุณเคยเห็นดัชนีในหนังสือหรือไม่มันเล็กกว่าหนังสือมากและนั่นเป็นวิธีที่ดัชนีตารางควร"
ฉันไม่รู้สึกว่าปรัชญาของเขาถูกต้อง แต่ฉันไม่สามารถท้าทายเขาได้เพราะเขาเป็นผู้นำ DBA และฉันเป็นนักพัฒนา ฉันรู้สึกว่าแบบสอบถามต้องการดัชนีควรสร้างดัชนีแทนการค้นหา "วิธีแก้ไข" ที่เพิ่งสร้าง SP ที่ไม่สามารถอ่านได้และไม่สามารถแก้ไขได้
ฉันกำลังเลือกคอลัมน์ที่ต้องการเท่านั้น ปัญหาคือฉันกำลังกรองตามวันที่ดังนั้นเครื่องมือจำเป็นต้องทำการสแกนตารางเพื่อให้ตรงกับคอลัมน์ แบบสอบถามทำงานวันละครั้งตอนกลางคืนเพื่อรวบรวมสถิติ แต่ใช้เวลา 15 นาทีในการทำงาน (เรามีกฎที่ยากและรวดเร็ว: ไม่มีขั้นตอนใดที่ควรใช้เวลามากกว่า 3 นาที)
DBA แสดงสถิติดัชนีให้ฉัน มีประมาณ 10 ดัชนีในตารางนั้นมีเพียง 6 ดัชนีเท่านั้นที่ใช้ (สถิติแสดงให้เห็นว่ามีจำนวนการเข้าศูนย์ถึง 4 ของดัชนี) นี่เป็นระบบขนาดใหญ่ที่มีผู้พัฒนามากกว่า 20 คนเข้าร่วม ดัชนีถูกสร้างขึ้นด้วยเหตุผลใดก็ตามและอาจไม่ได้ใช้อีกต่อไป
เราจำเป็นต้องสนับสนุน SQL Server 2008 เนื่องจากเป็นสิ่งที่ฐานข้อมูลการทดสอบทำงานอยู่ แต่ลูกค้าทั้งหมดในปี 2014 และ 2016