SqlServer数据库死锁问题定位语句

--1.查找未提交事务
SELECT
	session_id,
	transaction_id,
	is_user_transaction,
	is_local 
FROM
	sys.dm_tran_session_transactions 
WHERE
	is_user_transaction = 1;
	
--2.根据返回的ID查询详细信息
SELECT
	* 
FROM
	sys.dm_exec_connections c CROSS apply sys.dm_exec_sql_text ( c.most_recent_sql_Handle ) s 
WHERE
	session_id = 63;

SELECT
	p.session_id,
	p.request_id,
	p.start_time,--查找阻塞的语句(正在运行)
	p.status,
	p.command,
	p.blocking_session_id,
	p.wait_type,
	p.wait_time,
	p.wait_resource,
	p.total_elapsed_time,
	p.open_transaction_count,
	p.transaction_isolation_level,
	SUBSTRING (
		qt.text,
		p.statement_start_offset/ 2,
		(
		CASE
				
				WHEN p.statement_end_offset=- 1 THEN
				len( CONVERT ( nvarchar ( MAX ), qt.text ) ) * 2 ELSE p.statement_end_offset 
			END - statement_start_offset 
	) / 2 
	) AS "SQL statement",
	p.statement_start_offset,
	p.statement_end_offset,
	batch = qt.text 
FROM
	master.sys.dm_exec_requests p CROSS apply sys.dm_exec_sql_text ( p.sql_handle ) AS qt 
WHERE
	p.session_id> 50

--查看产生死锁的表
SELECT
	request_session_id spid,
	OBJECT_NAME( resource_associated_entity_id ) tableName 
FROM
	sys.dm_tran_locks 
WHERE
	resource_type = 'OBJECT';
	
--“杀死”死锁进程
kill spid;

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值