อะไรคือความแตกต่างระหว่างหน้าเว็บแบบ leaf และแบบ non-leaf?


18

ฉันได้รับการเรียกใช้รายงานการใช้งานดัชนีบางส่วนและฉันพยายามที่จะได้รับความหมายของใบและNon-ใบ ดูเหมือนว่าจะมีทั้งส่วนแทรกและส่วนที่ไม่ใช่ใบไม้การอัปเดตการลบการรวมหน้าและการจัดสรรหน้า ฉันไม่รู้จริงๆว่ามันหมายถึงอะไรหรือถ้ามีคนหนึ่งดีกว่าคนอื่น

หากใครบางคนสามารถให้คำจำกัดความที่เรียบง่ายของแต่ละคนและอธิบายว่าทำไมเรื่อง Leaf หรือ Non-leaf ก็จะได้รับการชื่นชม!

คำตอบ:


21

คิดอย่างนี้หน้าระดับใบไม้เป็นจุดสิ้นสุดของการค้นหาข้อมูลผ่านโครงสร้าง B-tree ของดัชนี พวกเขามีข้อมูลที่กำหนดไว้ในคำนิยามดัชนี (หรือในกรณีของดัชนีคลัสเตอร์ข้อมูลทั้งหมดของตาราง) และตัวระบุแถวไปยังแถวข้อมูล (ในกรณีของดัชนีที่ไม่ใช่คลัสเตอร์)

หน้าระดับที่ไม่ใช่ใบไม้ประกอบด้วย "แผนที่ถนน" ไปยังหน้าระดับข้อมูล / ใบโดยรวมถึงค่าคีย์เช่นเดียวกับตัวชี้ไปยังหน้าระดับที่ไม่ใช่ใบอื่น (ขึ้นอยู่กับความลึกของต้นไม้ B และตำแหน่งของหน้ากลาง ) หรือหน้าระดับลีฟผลลัพธ์ (หน้าดัชนีสำหรับดัชนีที่ไม่เป็นคลัสเตอร์และหน้าข้อมูลสำหรับดัชนีคลัสเตอร์)

แก้ไข: นี่คือภาพที่ดีที่จะนำภาพไปยังความคิด

ป้อนคำอธิบายรูปภาพที่นี่


1
คำตอบที่ดี แต่คุณควรเชื่อมโยงไปยังแหล่งที่มาของคุณ (โดยเฉพาะเมื่อการคัดลอกภาพ): technet.microsoft.com/en-us/library/...
MikeTeeVee

4
  • leaf = ในดัชนีคลัสเตอร์ซึ่งข้อมูลแถวทั้งหมดอยู่ที่ใด ในดัชนีที่ไม่ทำคลัสเตอร์คอลัมน์จะสร้างดัชนีรวมคอลัมน์ใด ๆ ที่รวมอยู่และคีย์ดัชนีคลัสเตอร์ (หากตารางมีดัชนีคลัสเตอร์)
  • non-leaf = โหนดดัชนีภายใน (มีเฉพาะข้อมูลคอลัมน์ที่เป็นส่วนหนึ่งของดัชนี)

ทุกดัชนีประกอบด้วยโหนดรากเดียวอาจเป็นไปได้หลายชั้นของโหนดต้นไม้ภายในกลางและชั้นเดียวของโหนดใบ

ในดัชนีคลัสเตอร์โหนดใบไม้เป็นตารางที่มีประสิทธิภาพ ในดัชนีที่ไม่ใช่คลัสเตอร์โหนดโหนดจะมีข้อมูลคอลัมน์คอลัมน์ใด ๆ ที่รวมอยู่และคีย์ดัชนีคลัสเตอร์

ข้อมูลเบื้องต้นเกี่ยวกับดัชนีเซิร์ฟเวอร์ SQL

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