sql-server – 我有一个阻塞事务,但没有显示任何语句
发布时间:2020-12-12 05:53:17 所属栏目:MsSql教程 来源:网络整理
导读:我的SQL Server 2008开始挂起简单查询,所以我使用内置的All Blocking Transactions报告检查了阻塞事务.果然,这样的交易存在.但是,如果我展开阻止SQL语句,我会得到一个空白框.如何找到有关该问题的更多信息? 这笔交易阻止了几个对业务至关重要的工作(好吧,不
我的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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |