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

方法 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