活页和非活页有什么区别?


18

我一直在运行一些索引使用情况报告,并且正在尝试获取LeafNon-leaf的定义。似乎同时存在叶子和非叶子插入,更新,删除,页面合并和页面分配。我真的不知道这意味着什么,或者一个比另一个更好。

如果有人可以给每个简单的定义,并解释为什么叶子或非叶子很重要,不胜感激!

Answers:


21

这样想:叶级页面是通过索引的B树结构进行数据搜索的终点。它们包含在索引定义中定义的数据(或在聚集索引的情况下,表的所有数据)和数据行的行定位器(在非聚集索引的情况下)。

非叶级页面 通过包含键值以及指向另一个非叶子级页面的指针(取决于B树的深度和中间页面的位置)来包含到叶子级页面/数据的“路线图”)或生成的叶级页面(非聚集索引的索引页面和聚集索引的数据页面)。

编辑:这是一张很好的图片,可以为您的想法加油。

在此处输入图片说明


1
很好的回答,但你应该(复制影像时,特别是)链接到你的源代码:technet.microsoft.com/en-us/library/...
MikeTeeVee

4
  • leaf =在聚集索引中,所有行数据数据都在其中。在非聚集索引中,组成索引的列,加上所有包含的列和聚集索引键(如果表具有聚集索引)
  • 非叶=内部索引节点(仅包含属于索引一部分的列数据)

每个索引都由单个根节点,可能的中间内部树节点的多层和叶子节点的单层组成。

在聚簇索引中,叶节点实际上是表。在非聚集索引中,叶节点包含列数据,任何包含的列和聚集索引键。

SQL Server索引基础

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.