2010-10-12 89 views
1

我有一个SQL Server 2005数据库保持锁定,不会释放。我的应用程序无法将更新提交到数据库,因为有些任务正在等待处理,并且我的应用程序不断崩溃。如果我看看活动监视器,等待任务只会持续上升直到我终止进程。问题是我可以看到导致锁定的活动监视器中有什么,但我没有足够的信息说它只是说会话ID被阻止。SQL Server数据库保持锁定

有没有什么方法可以通过使用TSQL来找出那个过程是什么以及它在做什么?即查询具有较长等待时间的数据库上的锁以及如何强制它们释放或防止它们?

回答

0

尝试sp_lock @ProcessID然后挑选排他锁(mode = X或IX)。然后您可以使用SELECT object_name(id)找出违规物品。该ID是从ObjId列中获取的。