SQL中如何检查死锁

王朝学院·作者佚名  2016-05-26
窄屏简体版  字體: 小  |  中  |  大  |  超大  

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

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航