事务的状态
关键词:事务的状态,查看事务的状态,事务的监控,事务的执行情况跟踪
转自:https://www.cnblogs.com/micro-chen/p/7722702.html?tdsourcetag=s_pctim_aiomsg
[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] 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 server 监控
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
2018-04-08 事务控制及try catch
2018-04-08 SQL SERVER深入学习学习资料参考
2018-04-08 SQL Server 学习博客分享列表(应用式学习 + 深入理解)
2018-04-08 SQL Server学习路径(文章目录)
2018-04-08 使用tar+pigz+ssh实现大数据的高效传输