生产数据库中有一个表,我将其中一个列长从Nvarchar(3000)
更改为Nvarchar(4000)
。
之后,应用程序团队收到超时错误。您是否有人建议如何解决此问题?
执行查询时没有阻塞。
答案 0 :(得分:2)
大多数情况下,超时与统计数据不相关......
尝试重建索引。由于您更改了列,因此可能会导致碎片碎片。
ALTER INDEX all ON yourtable REBUILD
并尝试更新统计信息,因为索引重建仅更新索引列统计信息。
UPDATE STATISTICS yourtable WITH FULLSCAN, COLUMNS
如果您仍然有超时,请尝试微调所涉及的查询。
答案 1 :(得分:0)
在此类更改之后,数据可能会在存储上分散,这可能会导致极高的I / O.重新建立索引/统计数据肯定值得尝试,但请考虑创建新表并将数据移动到这个新创建的表中。
要检查I / O是否高,请使用SET STATISTICS IO ON。
当然,如果你可以将它与旧版本进行比较,那将是完美的。