首页 > 解决方案 > 超过 15 分钟的简单 SQL Server 更新查询

问题描述

我有一个包含 5 列和 3 行的 SQL Server 数据库表。架构说明:

虽然cIdFootcwId都是外键,因为它们在此表中几乎是空表,但它们当前未创建为外键。

我的更新是这样的:

UPDATE myTable 
SET desc1 = '2018', desc2 = '2018'
WHERE (cId = 1) 

这个简单的 SQL 脚本需要 6 分钟,而表只有 3 行。

进行选择似乎没问题,但是当我尝试更新时,它需要很长时间,而且通常会超时。我在日志中看到-> .ldf 文件似乎没有变大,可能是它已损坏或创建得不好。在更新或插入时,具有超过 10000 行的异常大的表可以正常工作。

任何帮助将不胜感激。

执行计划:执行计划

在此处输入图像描述

标签: sql-server

解决方案


根据您的评论,SPID 85 正在阻止您的更新查询。您的更新将不会完成,直到此过程完成或释放您的更新所需的锁定。

如果你杀死 SPID 85,更新将会运行,但你需要弄清楚这个进程在做什么以及为什么它在那个表上持有一个锁。在您修复它之前,它不太可能停止获取此表的锁定(并因此阻止您的更新)。


推荐阅读