SQL Server - หน้าข้อมูลถูกจัดเก็บอย่างไรเมื่อใช้ดัชนีแบบคลัสเตอร์


13

ฉันเพิ่งได้ยินว่าหน้าข้อมูลในดัชนีคลัสเตอร์ไม่ได้ถูกจัดเก็บอย่างต่อเนื่อง มันเป็นเรื่องจริงเหรอ?

บางทีหน้าข้อมูลมักจะถูกจัดเก็บอย่างต่อเนื่องพร้อมกับข้อยกเว้นบางอย่างสำหรับกฎ หรือบางทีฉันได้ยินผิดและหน้าข้อมูลถูกจัดเก็บอย่างต่อเนื่องเสมอ

ขอบคุณมาก.


1
Books Online มีไดอะแกรมที่ค่อนข้างดีซึ่งแสดงให้เห็นว่าหน้าต่างๆได้รับการจัดเก็บอย่างไรและต้นไม้ B ถูกวางไว้อย่างไร
mrdenny

คำตอบ:


11

หน้าข้อมูลจะถูกจัดเก็บอย่างต่อเนื่องเมื่อสร้างดัชนีและเมื่อสร้างดัชนีใหม่ มิฉะนั้น SQL Server จะพยายามเก็บหน้าตามลำดับทางกายภาพ ที่เป็นไปไม่ได้จะพยายามลำดับตรรกะ คุณสามารถรับช่องว่างในตารางเนื่องจากการเขียนอื่น ๆ ที่เกิดขึ้นในฐานข้อมูล SQL Server ใช้ B + trees สำหรับดัชนี - ระดับ leaf (data) ของดัชนีมีข้อมูล แต่ยังเป็นรายการที่เชื่อมโยงเป็นสองเท่าที่มีตัวชี้ไปยังหน้าถัดไปและหน้าก่อนหน้า สิ่งนี้ทำให้มีความสำคัญน้อยกว่าที่ตารางจะต่อเนื่องทางกายภาพ 100%

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.