SQL Server 连接和事务相关的问题。

本文介绍了使用dbccopentran和sys.dm_exec_connections方法来追踪SQL Server中的活动事务,并通过实例展示了如何查找最老的活动事务及其对应的SQL操作。但需要注意的是,这些方法只能提供最老事务的信息和最近一次SQL操作的内容,而无法直接关联两者。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法 1、 dbcc opentran + sys.dm_exec_connections 

       dbcc opentran;

              

      dbcc opentran 针对当前数据库

      dbcc opentran('Studio') 针对指定数据库

      可以看到最旱的活动事务是 54 这个session 发起的。下面看一下它做了点什么。

      select conn.session_id,sess.program_name,sqltext.text
      from sys.dm_exec_connections as conn cross apply sys.dm_exec_sql_text(conn.most_recent_sql_handle) as sqltext,sys.dm_exec_sessions sess
      where conn.session_id = sess.session_id and conn.session_id = 54;
      go

          

      这里可以看出 session 54 最后做的事是 ’select @@spid'  还记得最老的活动事务是 54打开的吗?可是这个事务并不是为 @@spid 打开的

            

      总结:

             dbcc opentran 只返回最老是活动事务、并不是session 最后的事务,sys.dm_exec_connections 只可以得到最后事务的sql代码引用。

             若要找到最老的事务它在做什么,这个方法还是行不通。

 

转载于:https://www.cnblogs.com/JiangLe/p/3996552.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值