查看数据库发生死锁的具体对象
2012-09-19 10:57
302 查看
执行以下的存储过程:
得到的结果会以XML的方式返回作为结果集,双击可以查看详细的结果集
在结果集中会找到“ID”方面的节点:<inputbuf>,将得到的两个ID放到以下对应的地方可以查出具体发生死锁的对象
查看锁的详细:
SELECT CAST ( REPLACE ( REPLACE ( XEventData.XEvent.value ('(data/value)[1]', 'varchar(max)'), '<victim-list>', '<deadlock><victim-list>'), '<process-list>', '</victim-list><process-list>') AS XML) AS DeadlockGraph FROM (SELECT CAST (target_data AS XML) AS TargetData FROM sys.dm_xe_session_targets st JOIN sys.dm_xe_sessions s ON s.address = st.event_session_address WHERE [name] = 'system_health') AS Data CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent) WHERE XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report';
得到的结果会以XML的方式返回作为结果集,双击可以查看详细的结果集
在结果集中会找到“ID”方面的节点:<inputbuf>,将得到的两个ID放到以下对应的地方可以查出具体发生死锁的对象
select OBJECT_NAME([Object Id],[Database Id])
查看锁的详细:
SELECT L.request_session_id AS SPID, DB_NAME(L.resource_database_id) AS DatabaseName, O.Name AS LockedObjectName, P.object_id AS LockedObjectId, L.resource_type AS LockedResource, L.request_mode AS LockType, ST.text AS SqlStatementText, ES.login_name AS LoginName, ES.host_name AS HostName, TST.is_user_transaction as IsUserTransaction, AT.name as TransactionName, CN.auth_scheme as AuthenticationMethod FROM sys.dm_tran_locks L JOIN sys.partitions P ON P.hobt_id = L.resource_associated_entity_id JOIN sys.objects O ON O.object_id = P.object_id JOIN sys.dm_exec_sessions ES ON ES.session_id = L.request_session_id JOIN sys.dm_tran_session_transactions TST ON ES.session_id = TST.session_id JOIN sys.dm_tran_active_transactions AT ON TST.transaction_id = AT.transaction_id JOIN sys.dm_exec_connections CN ON CN.session_id = ES.session_id CROSS APPLY sys.dm_exec_sql_text(CN.most_recent_sql_handle) AS ST WHERE resource_database_id = db_id() ORDER BY L.request_session_id
相关文章推荐
- oracle 数据库模式对象,索引,序列,同义词,查看用户拥有的表,聚簇,数据库链接
- 数据库以及线程发生死锁的原理及必要条件,如何避免死锁
- 快速掌握查看数据库表死锁的实用方法
- 查看数据库对象创建脚本
- dbcc extentinfo 查看磁盘分区 分析压缩数据库对象
- 查看数据库对象间的依赖关系
- 库被HANG住的具体查看(使用HNAGANALYZE) 及真正的死锁
- DBA_SEGMENTS - 查看数据库对象所分配的物理存储空间
- 数据库以及线程发生死锁的原理及必要条件,如何避免死锁
- 查看数据库死锁情况的存储过程
- 13. 查看数据库对象间的依赖关系
- 如何查看数据文件中有哪些数据库对象占用?
- SQLServer 2008数据库查看死锁、堵塞的SQL语句
- 查看数据库对象创建脚本
- oracle 查看数据库死锁
- SQLServer 数据库查看死锁、堵塞的SQL语句
- 【SQLServer 2008】数据库查看死锁、阻塞的SQL语句
- 发布一个C#+ADOMD.NET实现查看分析服务数据库信息的类对象
- 如何查看什么时间有哪些数据库对象结构被修改过
- SQLServer 2008数据库查看死锁、堵塞的SQL语句