首页 > 代码库 > SQL中如何检查死锁
SQL中如何检查死锁
SQL中如何检查死锁
编写人:CC阿爸
2014-6-15
在日常SQL数据库的操作中,SQL偶尔会出现表被死锁的问题。比如:
在执行事务时,突然中止事务。系统肯定会锁表。
大批量数据操作时,由于网络 机器性能等相关因素,都会偶尔引起死锁。
这也是SQL没有oracle强大的功能之一。
select 标志=‘死锁的进程‘,
spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran,
status,hostname,program_name,hostprocess,nt_domain,net_address,
s1=a.spid,s2=0
from master..sysprocesses a join (
select blocked from master..sysprocesses group by blocked
)b on a.spid=b.blocked where a.blocked=0
dbcc inputbuffer
--查看有无锁表
use master
select * from sysprocesses where blocked<>0
--查看锁表的信息
sp_who 51
DBCC INPUTBUFFER (79)
EXEC sp_lock 51
--删除被锁的进程
kill 57
SQL中如何检查死锁
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。