2016-07-21 83 views
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下显示。

+1

有在桌子上或记录一些锁。在查询运行时,应该使用sp_who或sp_who2来查看它正在等待的内容。 'select'返回的速度很快,因为它不需要排它锁来读取记录,更新就是这样。 – Igor

+0

sp_who和sp_who2都为我正在运行的更新返回单个记录,而没有别的 – Broom

+0

我同意Igor。可能有一个开放的交易以及? –

回答