sys.indexes 中的index_id=0 是否指的是表本身?
不幸的是,BOL 对此有点模糊,但是 sys.indexes
或 sys.partitions
上的 index_id = 0
似乎引用了表本身其中表上没有聚集索引。 是的——还是我错过了什么?
Unfortunately the BOL is a little vague on this, but index_id = 0
on sys.indexes
or sys.partitions
appears to refer to the table itself where there is no clustered index on the table. True - or am I missing something?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,对于基于堆的表,它将始终存在,并且它指的是 IAM(索引分配映射)。 对于具有聚集索引的表,它将不存在。
请注意,这些索引上的“type_desc”是 HEAP,有一个关于 指数分配图。
因此,堆表(没有聚集索引的表)将始终具有一个带有
index_id = 0
条目的索引,而具有聚集索引的表将始终具有一个带有index_id = 1
的条目。No, For heap based tables it will always exist and it refers to the IAM (Index Allocation Map). For tables with clustered indexes it will not exist.
Notice the "type_desc" is HEAP on these indexes, there is a really good blog entry about the Index Allocation Map.
So, Heap tables (ones with no clustered index) will always have one index with entry
index_id = 0
, and tables with clustered indexes will always have an entry withindex_id = 1
.