เหตุใดจึงไม่สามารถเข้าถึงข้อมูลโดยตรงจากตารางที่ทิ้งต้นไม้ทรี B (น่าจะเป็นโดยการสแกนตารางทีละแถว) จะไม่เหมาะสมกว่าข้อมูลที่ไม่สามารถเข้าถึงได้ทั้งหมดหรือไม่
เพื่อตอบคำถามของคุณพื้นฐานการทำดัชนีมีประโยชน์มากขึ้น - ดัชนีประกอบด้วยชุดของหน้า (โหนดดัชนี) ที่จัดระเบียบในโครงสร้าง B-tree โครงสร้างนี้เป็นลำดับชั้นในลักษณะโดยมีโหนดรูทที่ด้านบนของลำดับชั้นและโหนดลีฟที่ด้านล่าง สำหรับรายละเอียดเพิ่มเติมดูที่นี่
นอกจากนี้ตามที่หลาย ๆ คนได้อธิบายไว้ดัชนีกลุ่ม == ตารางต้นฉบับซึ่งได้รับคำสั่งทางร่างกายด้วยปุ่มหรือคอลัมน์อย่างน้อยหนึ่งรายการ ดังนั้นเมื่อดัชนีคลัสเตอร์ถูกปิดใช้งานแถวข้อมูลของมันจะไม่สามารถเข้าถึงได้ คุณจะไม่สามารถแทรกข้อมูลใด ๆ (สำหรับดัชนีที่ไม่ใช่แบบคลัสเตอร์การแทรกจะสำเร็จ - แต่นั่นไม่เกี่ยวข้องทั้งหมดกับโพสต์นี้ - เนื่องจากที่นี่เป็นการสนทนาของดัชนีแบบกลุ่ม) หรือการดำเนินการจัดระเบียบใหม่จะไม่ทำงาน
ด้านล่างจะอธิบายรายละเอียดให้คุณ:
เราจะใช้ฐานข้อมูล Adventureworks เพื่อดูผลของการปิดการใช้งานดัชนีCLUSTERED
ตรวจสอบการนับแถวในตาราง:
ตอนนี้ปิดการใช้งานดัชนีแบบคลัสเตอร์
ตอนนี้เลือกจำนวนแถวจากตาราง คราวนี้มันจะผิดพลาดด้วยข้อความด้านล่าง:
แม้แต่การจัดระเบียบใหม่ก็ไม่ทำงาน !!
ตอนนี้สร้างดัชนีคลัสเตอร์ใหม่และควรทำงานได้ดี
เลือกตารางเพื่อดูว่าเราสามารถเข้าถึงข้อมูลได้หรือไม่
ดังนั้นสิ่งที่สำคัญที่สุดคือถ้าเราปิดการใช้งานดัชนีแบบกลุ่มข้อมูลในตารางยังคงมีอยู่ แต่จะไม่สามารถเข้าถึงได้สำหรับสิ่งอื่นใดนอกจากการดำเนินการแบบหล่นหรือการสร้างใหม่ ดัชนีและมุมมองที่ไม่ใช่คลัสเตอร์ที่เกี่ยวข้องทั้งหมดจะไม่สามารถใช้งานได้รวมถึง Foreign Keys ที่อ้างถึงตารางจะถูกปิดใช้งานและจะมีการนำ FAILURE สำหรับแบบสอบถามทั้งหมดที่อ้างถึงตาราง
หมายเหตุ: ไม่มีตัวเลือกให้เปิดใช้งานดัชนี คุณต้องสร้างใหม่