博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL SERVER 事务执行情况跟踪分析
阅读量:5878 次
发布时间:2019-06-19

本文共 5670 字,大约阅读时间需要 18 分钟。

[sql] view plain copy---查看现在所有的事务    select '正在运行事务的会话的 ID'=session_id,                     --session_id与transaction_id的对应关系           '事务的 ID'=transaction_id,         '正在处理事务的会话中的活动请求数'=enlist_count,            '用户or系统事务'=case is_user_transaction when 1 then '事务由用户请求启动'                                                      when 0 then '系统事务'                                                      end,          '本地or分布式事务'= case is_local when 0 then '分布式事务或登记的绑定会话事务'                                                      when 1 then '本地事务'                                                      end,          '分布式事务类型'=case is_enlisted when 0 then '非登记的分布式事务'                                                      when 1 then '登记的分布式事务'                                                      end,          '绑定会话中处于状态'=case is_enlisted when 0 then '事务在通过绑定会话的会话中处于非活动状态。'                                                      when 1 then '事务在通过绑定会话的会话中处于活动状态'                                                      end                from sys.dm_tran_session_transactions  --会话中的事务,识别所有打开的事务             where is_user_transaction =1        ----活动事务的具体信息    select dt.transaction_id,           dt.name,                                   dt.transaction_begin_time,           case dt.transaction_type                      when 1 then '读/写事务'               when 2 then '只读事务'               when 3 then '系统事务'               when 4 then '分布式事务'           end 'transaction type',                      case dt.transaction_state               when 0 then '事务尚未完全初始化'               when 1 then '事务已初始化但尚未启动'               when 2 then '事务处于活动状态'               when 3 then '事务已结束。该状态用于只读事务'               when 4 then '已对分布式事务启动提交进程'               when 5 then '事务处于准备就绪状态且等待解析'               when 6 then '事务已提交'               when 7 then '事务正在被回滚'               when 8 then '事务已回滚'           end  'transaction state',         case dt.dtc_state              when 1 then '活动'              when 2 then '准备就绪'              when 3 then '已提交'              when 4 then '中止'              when 5 then '已恢复'              end dtc_state                  from sys.dm_tran_active_transactions dt    --活动的事务    where transaction_id = 123        ---根据事务ID 和其对应的session_id 找到活动事务对应的执行语句    select  dc.session_id,          ds.login_name,          ds.login_time,                         dc.connect_time,          dc.client_net_address,           ds.host_name,          ds.program_name,          case ds.status when 'sleeping' then '睡眠 - 当前没有运行任何请求 '                          when 'running' then '正在运行 - 当前正在运行一个或多个请求 '                          when 'Dormancy' then '休眠 – 会话因连接池而被重置,并且现在处于登录前状态'                          when 'Pre-connected' then '预连接 - 会话在资源调控器分类器中'                          end as status ,          ds.cpu_time as cpu_time_ms,          ds.memory_usage*8 as memory_kb,          ds.total_elapsed_time as total_elapsed_time_ms,          case ds.transaction_isolation_level when 0 then '未指定'                                          when 1 then '未提交读取'                                          when 2 then '已提交读取'                                          when 3 then '可重复'                                          when 4 then '可序列化'                                          when 5 then '快照'                                          end '会话的事务隔离级别',           dt.text                from sys.dm_exec_connections  dc        --执行连接,最近执行的查询信息    cross apply sys.dm_exec_sql_text(dc.most_recent_sql_handle) dt  join sys.dm_exec_sessions ds  on dc.session_id=ds.session_id  where dc.session_id = 55

 

[sql] 
 
 
  1. ---查看现在所有的事务  
  2.   
  3. select '正在运行事务的会话的 ID'=session_id,                     --session_id与transaction_id的对应关系    
  4.        '事务的 ID'=transaction_id,  
  5.        '正在处理事务的会话中的活动请求数'=enlist_count,    
  6.         '用户or系统事务'=case is_user_transaction when 1 then '事务由用户请求启动'  
  7.                                                     when 0 then '系统事务'  
  8.                                                     end,  
  9.         '本地or分布式事务'case is_local when 0 then '分布式事务或登记的绑定会话事务'  
  10.                                                     when 1 then '本地事务'  
  11.                                                     end,  
  12.         '分布式事务类型'=case is_enlisted when 0 then '非登记的分布式事务'  
  13.                                                     when 1 then '登记的分布式事务'  
  14.                                                     end,  
  15.         '绑定会话中处于状态'=case is_enlisted when 0 then '事务在通过绑定会话的会话中处于非活动状态。'  
  16.                                                     when 1 then '事务在通过绑定会话的会话中处于活动状态'  
  17.                                                     end        
  18.         from sys.dm_tran_session_transactions  --会话中的事务,识别所有打开的事务     
  19.         where is_user_transaction =1    
  20.   
  21.   
  22. ----活动事务的具体信息    
  23. select dt.transaction_id,    
  24.        dt.name,                            
  25.        dt.transaction_begin_time,    
  26.        case dt.transaction_type           
  27.            when 1 then '读/写事务'    
  28.            when 2 then '只读事务'    
  29.            when 3 then '系统事务'    
  30.            when 4 then '分布式事务'    
  31.        end 'transaction type',    
  32.            
  33.        case dt.transaction_state    
  34.            when 0 then '事务尚未完全初始化'    
  35.            when 1 then '事务已初始化但尚未启动'    
  36.            when 2 then '事务处于活动状态'    
  37.            when 3 then '事务已结束。该状态用于只读事务'    
  38.            when 4 then '已对分布式事务启动提交进程'    
  39.            when 5 then '事务处于准备就绪状态且等待解析'    
  40.            when 6 then '事务已提交'    
  41.            when 7 then '事务正在被回滚'    
  42.            when 8 then '事务已回滚'    
  43.        end  'transaction state',  
  44.        case dt.dtc_state  
  45.             when 1 then '活动'  
  46.             when 2 then '准备就绪'  
  47.             when 3 then '已提交'  
  48.             when 4 then '中止'  
  49.             when 5 then '已恢复'  
  50.             end dtc_state  
  51.                 
  52. from sys.dm_tran_active_transactions dt    --活动的事务    
  53. where transaction_id = 123    
  54.   
  55.   
  56. ---根据事务ID 和其对应的session_id 找到活动事务对应的执行语句  
  57.   
  58. select  dc.session_id,  
  59.         ds.login_name,  
  60.         ds.login_time,                 
  61.         dc.connect_time,  
  62.         dc.client_net_address,   
  63.         ds.host_name,  
  64.         ds.program_name,  
  65.         case ds.status when 'sleeping' then '睡眠 - 当前没有运行任何请求 '  
  66.                         when 'running' then '正在运行 - 当前正在运行一个或多个请求 '  
  67.                         when 'Dormancy' then '休眠 – 会话因连接池而被重置,并且现在处于登录前状态'  
  68.                         when 'Pre-connected' then '预连接 - 会话在资源调控器分类器中'  
  69.                         end as status ,  
  70.         ds.cpu_time as cpu_time_ms,  
  71.         ds.memory_usage*8 as memory_kb,  
  72.         ds.total_elapsed_time as total_elapsed_time_ms,  
  73.         case ds.transaction_isolation_level when 0 then '未指定'  
  74.                                         when 1 then '未提交读取'  
  75.                                         when 2 then '已提交读取'  
  76.                                         when 3 then '可重复'  
  77.                                         when 4 then '可序列化'  
  78.                                         when 5 then '快照'  
  79.                                         end '会话的事务隔离级别',   
  80.         dt.text                
  81. from sys.dm_exec_connections  dc        --执行连接,最近执行的查询信息    
  82. cross apply sys.dm_exec_sql_text(dc.most_recent_sql_handle) dt  
  83. join sys.dm_exec_sessions ds  on dc.session_id=ds.session_id  
  84. where dc.session_id = 55  

转载地址:http://hhdix.baihongyu.com/

你可能感兴趣的文章
列表推导式 生成器表达式
查看>>
控制子窗口的高度
查看>>
Linux 防火墙iptables命令详解
查看>>
打造笔记本电脑基地重庆要当全球“老大”
查看>>
处理 Oracle SQL in 超过1000 的解决方案
查看>>
《JAVA与模式》之简单工厂模式
查看>>
Alpha线性混合实现半透明效果
查看>>
chkconfig 系统服务管理
查看>>
一个简单的运算表达式解释器例子
查看>>
ORACLE---Unit04: SQL(高级查询)
查看>>
Entity Framework Code First 模式-建立多对多联系
查看>>
[LeetCode] Reverse Lists
查看>>
前台页面之<base>标签
查看>>
angular分页插件tm.pagination 解决触发二次请求的问题
查看>>
day08-文件操作
查看>>
教学-45 对象的相等
查看>>
贪食蛇
查看>>
关于Spring 中的事务
查看>>
为什么现在都用面向对象开发,为什么现在都用分层开发结构?
查看>>
【离散数学】 SDUT OJ 偏序关系
查看>>