为什么非聚集索引使用聚集索引而不是直接使用表数据页?

Jos*_*eld 3 index sql-server clustered-index

从 Microsoft 课程(由第三方提供)中,我了解到当表具有聚集索引时,即使是非聚集索引也会命中聚集索引。

当我理解没有聚集索引(堆)时,非聚集索引直接引用到表的页面中。

假设正确理解,为什么非聚集索引会引用聚集索引而不是直接引用表的底层数据页?似乎直接引用表数据页的开销会更少。

JNK*_*JNK 10

聚集索引表。在经典的电话簿类比中,所有内容都由Lastname, Firstname电话簿所指的其他书籍排序。电话簿就是那本书,它是按这个顺序排列的。

当你有一个聚集索引时,它包含表中所有列的所有数据,按你选择的键排序。

在没有 CI 的情况下,非聚集索引需要引用某些东西,以便它们引用 RID(行标识符),这是引擎分配的代理键。