sys.indexes 中的index_id=0 是否指的是表本身?

发布于 2024-07-11 21:12:51 字数 144 浏览 3 评论 0原文

不幸的是,BOL 对此有点模糊,但是 sys.indexessys.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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

罪歌 2024-07-18 21:12:51

sys.indexes中的index_id=0是否引用
到桌子本身?

不,对于基于堆的表,它将始终存在,并且它指的是 IAM(索引分配映射)。 对于具有聚集索引的表,它将不存在。

请注意,这些索引上的“type_desc”是 HEAP,有一个关于 指数分配图

因此,堆表(没有聚集索引的表)将始终具有一个带有 index_id = 0 条目的索引,而具有聚集索引的表将始终具有一个带有 index_id = 1 的条目。

Does index_id=0 in sys.indexes refer
to the table itself?

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 with index_id = 1.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文