您的位置:首页 > 数据库

SqlServer 查看死锁的进程

2017-11-23 11:48 288 查看
搞sqlsever 好多年, 从来没锁过表, 今天终于遇到了..

幸好是开发期.生产期就麻烦了.

百度了一下.

后来解决了.

需要两个工具, 一个是SQLServer自带的manage 客户端



这个工具, 用来查看一些当时的运行状态.和干掉进程.

但是这个工具只能查看部分哪个表被锁住了. 也无法知道是哪个进程和sql导致了锁进程. 只能查看一些其它的信息.

至于如何查看死锁的表, 需要用到下面的sql. 然后根据查出来的 进程id 去上面的工具中

查看详细信息.. 可以查看到引起死锁的SQL

查看被锁表:

select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName

from sys.dm_tran_locks where resource_type=’OBJECT’

spid 锁表进程

tableName 被锁表名

解锁:

declare @spid int

Set @spid = 92 –锁表进程

declare @sql varchar(1000)

set @sql=’kill ‘+cast(@spid as varchar)

exec(@sql)

当然也可以在活动监视器里面 结束掉进程.

今天无意中发现, 活动监视器里面也能看到一部分, 阻塞信息.



图片中的, 这个就被63号进程阻塞住了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: