【问题标题】:SQL Server 2005 Index rebuild when increasing the size of a varchar field增加 varchar 字段的大小时,SQL Server 2005 索引重建
【发布时间】:2011-04-21 14:24:14
【问题描述】:
我在大约 9000 万行的表中有 12 个 varchar(50) 字段,我需要将其长度增加到 varchar(100)。这些字段中的每一个都有一个索引(只有一个字段作为成员)。如果我增加 varchar 字段的长度,是否需要重建索引(或将自动重建),或者统计信息是否会过时?
我没有合理规模的测试系统测试(或者可能不知道如何查看索引是否已重建或是否需要重新计算统计信息)。
谢谢
【问题讨论】:
标签:
sql
sql-server-2005
indexing
varchar
rebuild
【解决方案1】:
统计信息基于列中的内容,而不是它们的大小,因此您的统计信息不会过时。
请记住,有时当您更改列时,SQL Server 会向表中添加一个新列并删除现有列,因此无论如何它都必须重建索引。
尽管进行了搜索,但我不能明确地说您是否必须重建索引,但无论如何我都会重建(因为这应该作为您正常维护的一部分发生,假设此表不是只读的或写入次数非常少)
顺便说一句,在每一列上都有一个单独的索引可能不是最佳的。您是否分析了您的查询工作负载?