更新到具有数百万行的表中的主键后,数据和索引大小翻倍

时间:2011-05-25 16:00:09

标签: sql-server

情况如下:

使用SQL Server 2005,我已经完成并更新了几个表中的主键(char(16)),用其他表替换了前六个字符中的一大块。 (我正在做这个,作为我工作中数据清理项目的一部分)。

这些表中的大多数都包含数百万行,并且可能还有1或2个非聚集索引。

执行这些更新后,数据和索引使用的数据页似乎加倍,从而导致MDF的大小加倍。我已经针对原始数据库的另一个副本(如列数据类型,排序规则,已使用/保留/未使用的空间)检查了几项内容,甚至创建/更新了所有内容的统计信息,然后对数据进行了缩减。没有什么能帮助或暗示增加规模的原因。顺便说一下,两个数据库之间的行数是相同的,所以它不是重复的行或类似的东西。

我没有执行'dbcc checkdb'或重建索引 - 这些是我最后的想法。有没有人见过类似的东西?

TLDR - 数据库MDF在更新具有数百万行的多个表的主键后翻倍。检查了列数据类型,行数,数据/索引大小。更新了统计数据并尝试缩小。什么都行不通。 HALP!

1 个答案:

答案 0 :(得分:2)

您需要使用常规填充因子重建索引,以确定您的页面使用是否已中断。