我在一个大约9000万行的表中有12个varchar(50)字段,我需要将其增加到varchar(100)的长度。这些字段中的每一个都有一个索引(只有一个字段作为成员)。如果我增加varchar字段的长度,是否需要重建索引(或者是否会自动重建索引),或者统计信息是否会过期?
我没有合理规模的测试系统测试(或者可能不知道如何查看索引是否已重建或统计数据是否需要重新计算)。
由于
答案 0 :(得分:1)
统计数据基于列中的内容,而不是其大小,因此您的统计信息不会过时。
请记住,有时当您更改列时,SQL Server会向表中添加一个新列并删除现有列,因此无论如何它都必须重建索引。
尽管搜索我不能断然说你是否必须重建索引,但我会重建(因为这应该是正常维护的一部分,假设这个表不是只读或非常低的写入)< / p> BTW,在每个列上都有一个单独的索引可能不是最佳的。您是否已分析过您的查询工作量?