简单的更新查询耗时太长

Tha*_*kur 5 sql t-sql sql-server

CurrentStatus我的数据库中有一个表(合并复制中的订阅数据库)列是StatusID {Primary Key + Clustered Index}, StatusName, StatusDate, UserID,CreatedDate, ModifiedDate, ModifiedBy, AllowDelete,AllowUpdate

CurrentStatus表为26000行

此表上的更新和删除突然花费了太多时间,比如1分30秒甚至5分钟.

以下查询需要花费一分钟才能执行.

update StatusMaster set StatusName='OK' where StatusID = 22
Run Code Online (Sandbox Code Playgroud)

表上有以前的5个索引(即使后来查询用于快速执行.)现在,由于更新/删除查询没有执行,我已经删除了所有索引,只保留了两个索引1)StatusID上的聚簇索引2)复制索引rowguid列,它是由复制自动创建的唯一非聚簇索引.

当我采取备份和恢复数据库时,同一个表上的查询运行正常.

还有一件事是我从服务器上的大约20台机器每2分钟运行一次复杂的查询.

是什么导致此查询消耗这么多时间来执行?

单击此处查看执行计划

Red*_*ter 7

我建议您通过UPDATE STATISTICS命令更新统计信息,例如:

UPDATE STATISTICS StatusMaster 
Run Code Online (Sandbox Code Playgroud)