0

我在 SQL Server 2008 R2 的数据库中有这个非常简单的查询:

UPDATE  Table1
   SET  Field1  = 'This value'
 WHERE  ID      = '12345'

我尝试执行此查询,但从未获得成功的结果。首先,它执行了很长时间。有一次我执行了这个查询,并在我吃午饭的时候把它留在那里。当我2小时后回来时,它还没有完成。

我需要以编程方式执行此查询。我拥有在那里执行它所需的一切,但现在唯一的问题是它给了我一个“超时”错误消息。我尝试增加我的 CommandTimeOut 但这样做只会让程序保持更长的时间。(由于在 SQL Server 中执行查询确实需要很长时间,请看我前面的场景)

有人可以指点我一个好的解决方案来避免这个问题吗?是的,我正在访问的表有很多记录,比如数千条。这以前从来不是问题,但现在是。:(

提前致谢 :)

4

1 回答 1

6

听起来您打开了一个事务,该事务锁定了 ID 为 12345 的行。在您提交或回滚该事务之前,该命令将永远不会完成。

打开活动监视器并查看阻止更新的事务。然后找到运行此事务并提交或回滚的未提交的 SSMS 窗口。

有关更多详细信息,请参阅了解和解决 SQL Server 阻塞问题。有关一般性能故障排除方法,请参阅等待和队列

于 2012-04-17T05:45:20.327 回答