得到的结果如图3所示。

图3.查询索引的详细信息

 通过图3所示结果,可以看出:

  ● 叶子节点的条目分布在407页中

  ● 中间节点仅仅需要2页

  ● 根节点只有1页

  根据索引键的选择,书签的大小的不同,叶子节点通常是非叶子节点大小的上百倍。根据具体的数据不同而不同。

  记住包含列仅仅适用在非聚集索引并且只存在于叶子节点中,包含列对于上层的层级是透明的,这也是为什么包含列不会增加非叶子节点键的大小。

  因为聚集索引的叶子节点是表数据本身,所以除了叶子节点的数据是表数据本身之外,还需要存储一些额外的非叶子层级。因为无论是否有聚集索引数据本身都是存在的,所以创建聚集索引的时候不仅需要花费一些时间和资源,创建成功后还需要一些额外的空间存储非叶子节点。

  总结

  索引的结构使得SQL Server可以根据键值快速找到所需的列,一旦找到所需的列之后,SQL Server可以:

  ● 直接访问所需的行

  ● 从找到的数据位置开始,根据双向链表找相邻的页

  索引树结构早已经在没有关系数据库时开始被使用了,事实证明,这是一种的结构。

相关链接:

SQL Server索引进阶之书签

SQL Server索引进阶之页和区