gpt4 book ai didi

sql - 增加 SQL Server 中的 NVARCHAR 列大小会导致索引重建吗?

转载 作者:行者123 更新时间:2023-12-02 00:23:32 28 4
gpt4 key购买 nike

我有一个数据库表,其中包含数百万行的客户数据,并且需要将姓氏字段从 NVARCHAR(32) 修改为 NVARCHAR(50)。该字段上有一个索引(非聚集)。我需要知道使用 ALTER TABLE ALTER COLUMN 语句进行此更改是否会自动重建索引。

如果是这样,我认为这将花费相当多的时间。我们在生产环境中的升级过程是通过运行脚本的已发布安装程序完成的,我们需要给出升级需要多长时间的预期。我们在 SQL 2005 和 2008 上都有相当大的生产数据库,所以如果两者不同,我需要知道答案。

我知道增加列的大小不应该修改像 NVARCHAR 这样的可变长度字段中的数据,并且即使在不涉及索引的情况下对大型数据集也应该非常快。我不清楚的是索引是否会导致速度变慢。

我在下面的链接中阅读了文档,但它实际上只是表明您可以使用现有索引进行更改,并没有说明可能对 ALTER TABLE 语句的执行时间产生什么影响,或者是否索引必须在之后重建,或者自动完成等等。

http://msdn.microsoft.com/en-us/library/ms190273.aspx

下面链接中的问题实际上几乎和我在这里问的一样,但是在另一篇文章中没有令人满意的答案,所以我想我会尝试一篇新文章。

SQL Server 2005 Index rebuild when increasing the size of a varchar field

如果您有这方面的经验,请告诉我。如果我能得到一个测试系统,该系统设置有一个可观的数据库,我可以在其中进行实验,我会发布结果。

谢谢!

最佳答案

否 - 索引永远不会在 SQL Server 中自动重建,即使您更改列大小时,例如提到的 nvarchar 列。索引会自动维护但不会重建。如果设置了数据库选项“自动更新统计”,则数据的统计/内部直方图可能会自动更新。

关于sql - 增加 SQL Server 中的 NVARCHAR 列大小会导致索引重建吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9928390/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com