查看数据库死锁SQL语句

最近敲代码,突然发现数据库访问特别慢,而且尤其是访问到某一个特定的数据库的时候,特别慢,这种情况下就要仔细检查一下自己的代码咯,可能是自己的sql语句导致了数据库访问过慢,下面是如何查找出来到底是哪一个sql语句导致数据库访问过慢!

我用的数据库是SqlServer

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

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

来自 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语句了!
这里写图片描述

番外:
select * from master.dbo.sysobjects 这个语句可以查询数据库中所有的表,与解决问题无意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值