我们使用的是 MS SQL Server 2005。
嗨,我正在对数据库表执行 UPDATE 语句。可以说这个表有下一个列:
int Id PK
int Column1
int Column2
它还有几个索引:
Unique Clustered (Id)
Non-Unique Non-Clustered (Column1)
Non-Unique Non-Clustered (Column2)
我做下一个操作:
UPDATE [dbo].[Table]
SET Column1 = @Value1
WHERE Column1 = @Param1
AND Column2 = @Param2
之后的实际执行计划如下所示:
这表示 86% 的时间用于更新聚集索引,其中不包括我刚刚更改的列。
此操作应在禁用 Web 应用程序的情况下运行数十万次,这意味着它非常关键。
那么,有没有人知道为什么事情会这样发展,是否可以以某种方式解决?这个问题有意义吗?如果需要,我准备提供更多信息。