处理sql server长时间锁表、死锁

有的人数据库连接工具开了手动提交,执行完sql又忘记提交事务,或者代码有问题没有提交事务或产生了死锁,会导致长时间锁表,表完全没法用了
其实可以建立运维面板来监控此种场景
无论是oracle还是sql server,处理步骤都是一样的,先查出锁表的session,再kill掉,只是具体sql不一样

--查询阻塞进程
select session_id,wait_duration_ms,wait_type,blocking_session_id
from  sys.dm_os_waiting_tasks
WHERE blocking_session_id <> 0

处理sql server长时间锁表、死锁_第1张图片

列出当前阻塞进程都被哪个进程给阻塞了,找出阻塞源头

--把阻塞源头给kill,kill之后该session的事务被回滚
kill session_id

你可能感兴趣的:(sqlserver,sql)