为什么我们在 sql server 2005 中有 249 个非聚集索引?为什么不是 240 或 300?
和 sql server 2008 相同的问题,为什么是 999 ?为什么不是 800 或 1000?
最佳答案
他们正在制作漂亮的(圆形)数字......
SQL Server 2005:
1 Clustered Index + 249 Nonclustered Indexes = 250 Indexes per table
SQL Server 2008:
1 Clustered Index + 999 Nonclustered Indexes = 1000 Indexes per table
更新:
您应该已经问过为什么 SQL Server 2008 中的 999。
这已在回答 my question 时进行了解释。这种增加的原因是在 SQL Server 2008 中引入了筛选索引。
index_id in sysindexes means 的数据类型:
所以,我们仍然可以观察到在 SQL Server 的 future 版本中增加到 3198(3199-1)。
我以前认为 sys.indexes 是 sysindexes 的同义词,但我现在发现它们不同,sysindexes 具有 indid(而不是 index_id)并且不包含 XML 索引的行!
sys.indexes 中的 index_id 具有 int(4bytes) 类型,sys.sysindexes 中的 indid 具有 smallint (2bytes) 类型(SQL Server 2008,可能比以前的版本有所增加)
我发现文章 Tibor Karaszi. Key count in sys[.]indexes 很有帮助也很有趣
关于sql-server - Sql Server中非聚集索引计数的原因,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4245086/