SQL Server 查看死锁进程
下面的SQL语句可用于查看产生死锁的进程和“杀死”死锁进程:
①查看产生死锁的表:
select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT'
其中spid表示锁表的进程,tableName表示被锁的表名。
②“杀死”死锁进程:
kill spid
其中spid表示锁表的进程,需要根据①中查询的结果赋值。
如何避免死锁 1 使用事务时,尽量缩短事务的逻辑处理过程,及早提交或回滚事务; 2 设置死锁超时参数为合理范围,如:3分钟-10分种;超过时间,自动放弃本次操作,避免进程悬挂; 3 优化程序,检查并避免死锁现象出现; 4 .对所有的脚本和SP都要仔细测试,在正是版本之前。 5 所有的SP都要有错误处理(通过@error) 6 一般不要修改SQL SERVER事务的默认级别。不推荐强行加锁
END![3dc5bf631ac74960e1489f86b1d4d145.png](https://img-blog.csdnimg.cn/img_convert/3dc5bf631ac74960e1489f86b1d4d145.png)