查看数据库死锁SQL语句

最近敲代码,忽然发现数据库访问特别慢,并且尤为是访问到某一个特定的数据库的时候,特别慢,这种状况下就要仔细检查一下本身的代码咯,多是本身的sql语句致使了数据库访问过慢,下面是如何查找出来究竟是哪个sql语句致使数据库访问过慢!

我用的数据库是SqlServerhtml

sp_lock
select * from master.dbo.sysdatabases
DBCC INPUTBUFFER(71) web

1.
sp_lock查看数据库的锁级别,查看哪个数据库发生死锁
这里写图片描述
Mode的值有如下几种:
Mode:锁模式(S:共享锁、U:修改锁、X:排它锁、IS共享意图锁、IX排它意图锁)sql

来自 http://www.51testing.com/html/05/71305-96791.html 数据库

若数据库发生死锁,那么能够根据Mode的值进行判断,找到死锁的数据库id即dbid字段!
2.
select * from master.dbo.sysdatabases
这里写图片描述
根据dbid字段获取到数据库的名字,这样子就能够定位到数据库了。
(模糊掉了数据库的名字~)
3.
DBCC INPUTBUFFER(71)
根据1步骤中获取到的spid为进程ID号,将进程ID号填入4的sql语句中则能够获取到当前死锁的sql语句了!
这里写图片描述svg

番外:
select * from master.dbo.sysobjects 这个语句能够查询数据库中全部的表,与解决问题无心义。code