3

我正在使用 C# 4.0 开发 winform 应用程序,后端 SQL SERVER 2012。有时,我的软件似乎挂起,因为查询变得挂起,因为一个查询在挂起模式下显示在活动监视器中,这个挂起的查询成功运行了几次但有时会出现这个问题。

活动监视器显示:

任务状态:暂停

命令:更新

应用程序:.net SqlClient 数据提供者

等待时间:5673610.....(不限)

等待类型:LCK_M_X

等待资源:keylock hobtid=72057594058768384 dbid=14 id=lock2dbc30880 mode=X associatedObjectId=72057594058768384

查询状态变为挂起的原因是什么。

我怎样才能阻止它被暂停?

4

1 回答 1

0

LCK_M_X表示查询正在等待在某处获取排他锁。尝试使用相同的数据库对象检查其他应用程序或线程,以查看是否存在竞争条件或没有自行清理的进程。

也许在您的代码中某处还有另一个 db 调用或嵌套的 proc 调用?

尝试使用 Sql Profiler 来识别锁定请求的来源 - 这可能会有所帮助,但如果不了解更多信息就很难说。

select * from sys.dm_tran_locks

高温高压

于 2014-08-18T14:35:58.987 回答