我有一个仓库事实表,该表在BIGINT列上具有聚集索引。由于无法控制的情况,我必须将数据从另一个来源添加到事实表中,其中来自两个不同来源系统的键重叠(我希望来自第二个来源的数据在其自己的数据集市中,但我被否决了)。为了解决这个问题,我在密钥中添加了1000000并将其乘以-1。
如果我将所有这些否定键插入聚簇索引中,那么在重新组织或重建索引时是否会不断添加大于0的键> 0,这会增加更多的开销。
谢谢
答案 0 :(得分:0)
如果在聚簇索引中添加更多值(正数或负数),则数据量会增加-因此,随着时间的推移,开销会增加一些。
但这并不取决于这些值是正值还是负值...索引无关紧要-只是一堆BIGINT
值。
答案 1 :(得分:0)
是的,是的。想一想写在几张纸上的清单。在末尾添加条目是没有问题的:如果最后一页上有足够的空间,则可以在该页面上写条目,如果最后一页已满,则只需在末尾添加空白页并写上该页面上的条目。但是,如果您必须在列表的开头添加一个新条目怎么办?必须将第一页上的所有条目下移以为新条目腾出空间,如果该页面已满,则必须添加一个新页面…在SQL Server中,此新页面将不在其他页面之前,因此页面列表将变得零散,这将影响查询性能。
如果不需要通过该键在磁盘上对记录进行物理排序,请考虑将索引更改为非聚集索引。