码迷,mamicode.com
首页 > 数据库 > 详细

SQL中如何检查死锁

时间:2015-01-24 23:58:51      阅读:306      评论:0      收藏:0      [点我收藏+]

标签:

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中如何检查死锁

标签:

原文地址:http://www.cnblogs.com/bribe/p/3791719.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!