0
我有一个包含少于1000条记录的表。每条记录都包含一个已编制索引的ID,一个整数用户变量和4个varbinary(max)列,每个列都可以为null,或者填充高达5mb的数据。Sql Server永久更新
较少以下select返回比第二
SELECT ID, UserVar, Data1, Data2, Data3, Data4 FROM MyTable WHERE ID = 1
以下更新将无限期运行
UPDATE MyTable SET UserVar = 1 WHERE ID = 1
我没有外键,没有触发,并没有其他过程中使用此表。有什么我可以做的解决这个问题?
:编辑:
的sp_who和sp_who2都返回了我正在更新一个记录,没有别的
选择@@ TRANCOUNT返回0
:EDIT2:
原来,我有一个僵尸数据读取器从以前失败的调试尝试打开。我不确定为什么没有在sp_who或@@ TRANCOUNT下显示。
有在桌子上或记录一些锁。在查询运行时,应该使用sp_who或sp_who2来查看它正在等待的内容。 'select'返回的速度很快,因为它不需要排它锁来读取记录,更新就是这样。 – Igor
sp_who和sp_who2都为我正在运行的更新返回单个记录,而没有别的 – Broom
我同意Igor。可能有一个开放的交易以及? –