将nvarchar 3000更改为nvarchar 4000

时间:2016-11-22 05:24:08

标签: sql-server tsql

生产数据库中有一个表,我将其中一个列长从Nvarchar(3000)更改为Nvarchar(4000)

之后,应用程序团队收到超时错误。您是否有人建议如何解决此问题?

执行查询时没有阻塞。

2 个答案:

答案 0 :(得分:2)

大多数情况下,超时与统计数据不相关......

尝试重建索引。由于您更改了列,因此可能会导致碎片碎片。

ALTER INDEX all ON yourtable REBUILD 

并尝试更新统计信息,因为索引重建仅更新索引列统计信息。

UPDATE STATISTICS yourtable WITH FULLSCAN, COLUMNS 

如果您仍然有超时,请尝试微调所涉及的查询。

答案 1 :(得分:0)

在此类更改之后,数据可能会在存储上分散,这可能会导致极高的I / O.重新建立索引/统计数据肯定值得尝试,但请考虑创建新表并将数据移动到这个新创建的表中。

要检查I / O是否高,请使用SET STATISTICS IO ON。

当然,如果你可以将它与旧版本进行比较,那将是完美的。