sql-server – 我有一个阻塞事务,但没有显示任何语句

前端之家收集整理的这篇文章主要介绍了sql-server – 我有一个阻塞事务,但没有显示任何语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的sql Server 2008开始挂起简单查询,所以我使用内置的All Blocking Transactions报告检查了阻塞事务.果然,这样的交易存在.但是,如果我展开阻止sql语句,我会得到一个空白框.如何找到有关该问题的更多信息?

这笔交易阻止了几个对业务至关重要的工作(好吧,不是真的,但老板和老板的老板依赖他们),所以我不情愿地杀了阻塞会议. 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

猜你在找的MsSQL相关文章