人生贵在坚持!
处理数据阻塞和死锁
上一篇 /
下一篇 2017-05-27 10:03:39
/ 个人分类:SQL
某天对正在使用的某个
数据库操作离线,导致数据库阻塞,离线失败,查找了半天,终于处理。
--查询阻塞语句:
SELECT a.blocking_session_id, a.wait_duration_ms, a.session_id,b.text
FROM sys.dm_os_waiting_tasks a,
(SELECT t.text ,c.session_id
FROM sys.dm_exec_connections c
CROSS APPLY sys.dm_exec_sql_text (c.most_recent_sql_handle) t) b
WHERE a.session_id = b.session_id and a.blocking_session_id IS NOT NULL
--处理方式:
--使用kill session ID的语句来终止某个阻塞的session。
kill [blocking_session_id];
--另外死锁的查询和处理如下:
exec master.dbo.sp_who_lock --查看当前死锁进程
exec master.dbo.p_killspid ytsafety--杀掉引起死锁的进程
--查询死锁
select
request_session_id spid,
OBJECT_NAME(resource_associated_entity_id) tableName
from
sys.dm_tran_locks
where
resource_type='OBJECT
--杀死死锁进程
kill spid
收藏
举报
TAG: