2011-05-27 52 views
2

我正在开发一个监视应用程序,它确定SQl服务器上的哪些事务处于挂起状态。我怎么知道哪些应用程序被挂起?有没有一些特定的API?如何跟踪哪些事务挂在SQL服务器上

+3

你说的“挂”是什么意思? – WOPR 2011-05-27 06:04:20

+0

当一个交易开始但不完全但处于未定义或停滞状态时 – Chani 2011-05-27 07:57:01

回答

2

的列出了那些正在阻塞其他会话。

SELECT S.* 
FROM sys.dm_exec_requests R 
INNER JOIN sys.dm_exec_sessions S 
ON S.session_id = R.blocking_session_id 
2

在旧版本也可以使用aba_lockinfo或较新的beta_lockinfo

+0

beta_lockinfo是明确的赢家。它帮助我们在几分钟内找出问题。事实证明,我们的一位开发人员在调试代码(锁定数据库中的表)时,有一种午餐刹车! beta_lockinfo会显示网络中计算机的名称以及导致锁定和超时的确切进程的ID。 – 2014-10-14 10:26:15