我有一个阻塞事务,但没有显示语句

我的SQL Server 2008开始挂在简单的查询,所以我使用内置的所有阻塞事务报告检查阻塞事务。 果然,这样的交易存在。 但是,如果我展开阻塞SQL语句,我会得到一个空白的框。 我怎样才能find更多关于这个问题?

这个交易阻碍了一些对业务至关重要的工作(事实上并非如此,但是老板和老板的老板都依赖于这些工作),所以我不情愿地KILL了这个阻断会议。 20分钟后,仍在“正在进行中…完成:0%…剩余时间估计:0秒”。 我真的很想知道是什么原因造成的,我已经有好几个月没有明显的障碍了。

你在什么版本的SQL? 如果2005年及以上,尝试使用下面的脚本识别有问题的查询? [免责声明:我不是该剧本的原作者; 我在我的图书馆有一段时间,但我不能给予原作者适当的功劳,因为我不记得我在哪里得到它]

 SELECT db.name DBName, tl.request_session_id, wt.blocking_session_id, OBJECT_NAME(p.OBJECT_ID) BlockedObjectName, tl.resource_type, h1.TEXT AS RequestingText, h2.TEXT AS BlockingTest, tl.request_mode FROM sys.dm_tran_locks AS tl INNER JOIN sys.databases db ON db.database_id = tl.resource_database_id INNER JOIN sys.dm_os_waiting_tasks AS wt ON tl.lock_owner_address = wt.resource_address INNER JOIN sys.partitions AS p ON p.hobt_id = tl.resource_associated_entity_id INNER JOIN sys.dm_exec_connections ec1 ON ec1.session_id = tl.request_session_id INNER JOIN sys.dm_exec_connections ec2 ON ec2.session_id = wt.blocking_session_id CROSS APPLY sys.dm_exec_sql_text(ec1.most_recent_sql_handle) AS h1 CROSS APPLY sys.dm_exec_sql_text(ec2.most_recent_sql_handle) AS h2 GO 

尝试使用sp_who2
你可以观察你的数据库正在发生什么