查看数据库里阻塞和死锁情况.sql

查看数据库里阻塞和死锁情况.sql

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_who_lock]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)

drop procedure [dbo].[sp_who_lock]

GO

/***************************************************************************

//  创建 : fengyu  邮件 : maggiefengyu@tom.com  日期 :2004-04-30

//  修改 : 从http://www.csdn.net/develop/Read_Article.asp?id=26566学习到并改写 

//  说明 : 查看数据库里阻塞和死锁情况

***************************************************************************/

use master

go

create procedure sp_who_lock

as

begin

declare @spid int,@bl int,

 @intTransactionCountOnEntry  int,

        @intRowcount    int,

        @intCountProperties   int,

        @intCounter    int

 create table #tmp_lock_who (

 id int identity(1,1),

 spid smallint,

 bl smallint)

 

 IF @@ERROR<>0 RETURN @@ERROR

 

 insert into #tmp_lock_who(spid,bl) select  0 ,blocked

   from (select * from sysprocesses where  blocked>0 ) a

   where not exists(select * from (select * from sysprocesses where  blocked>0 ) b

   where a.blocked=spid)

   union select spid,blocked from sysprocesses where  blocked>0

 IF @@ERROR<>0 RETURN @@ERROR

 

— 找到临时表的记录数

 select  @intCountProperties = Count(*),@intCounter = 1

 from #tmp_lock_who

 

 IF @@ERROR<>0 RETURN @@ERROR

 

 if @intCountProperties=0

  select ‘现在没有阻塞和死锁信息’ as message

— 循环开始

while @intCounter <= @intCountProperties

begin

— 取第一条记录

  select  @spid = spid,@bl = bl

  from #tmp_lock_who where Id = @intCounter

 begin

  if @spid =0

            select ‘引起数据库死锁的是: ‘+ CAST(@bl AS VARCHAR(10)) + ‘进程号,其执行的SQL语法如下’

 else

            select ‘进程号SPID:’+ CAST(@spid AS VARCHAR(10))+ ‘被’ + ‘进程号SPID:’+ CAST(@bl AS VARCHAR(10)) +’阻塞,其当前进程执行的SQL语法如下’

 DBCC INPUTBUFFER (@bl )

 end

— 循环指针下移

 set @intCounter = @intCounter + 1

end

drop table #tmp_lock_who

return 0

end

exec sp_who_lock

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/100639.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 微机原理课程设计电梯控制系统_列举一个计算机控制系统的应用实例

    微机原理课程设计电梯控制系统_列举一个计算机控制系统的应用实例1、针对一个具有大纯时延时间的一阶惯性环节(G(s)=K*e-θs/(Ts+1))温度控制系统和给定的系统性能指标,(工程要求相角裕度为30~60,幅值裕度>6dB);要求测量范围-50℃~200℃,测量精度0.5%,分辨率0.2℃;2、书面设计一个计算机控制系统的硬件布线连接图,并转化为系统结构图;3、选择一种控制算法并借助软件工程知识编写程序流程图;4、用MATLAB和SIMULINK进…

    2022年10月4日
    0
  • xsrf form html,python – tornado开启了xsrf_cookies,在ckeditor中上传文件如何传入xsrf_form_html()?…

    xsrf form html,python – tornado开启了xsrf_cookies,在ckeditor中上传文件如何传入xsrf_form_html()?…tornado在setting中设置了”xsrf_cookies”:True,则需要在表单中添加{%modulexsrf_form_html()%}。但ckeditor如何传xsrf_cookies这个值,每次上传图片都显示’_xsrf’argumentmissingfromPOST。如果把”xsrf_cookies”设置为False则上传成功。下面是上传的代码classcku…

    2022年5月12日
    33
  • Idea 删除当前一行的快捷键

    Idea 删除当前一行的快捷键使用eclipse,有时候出现多个空行时,习惯使用快捷键:Ctrl+D,删除当前一行。最近使用idea开发,发现手动删除空行,很麻烦,特意查了一下,发现是快捷键:Ctrl+Y。如下图所示:使用Ctrl+Y后删除当前行另外:可以使用设置,讲idea的快捷键设置为eclipse模式…

    2022年9月7日
    0
  • ubuntu的ssh连不上_ubuntu网络连接没有显示出来

    ubuntu的ssh连不上_ubuntu网络连接没有显示出来之前发在其他的博客上的,现在移动以下位置之前的链接:http://blog.chinaunix.net/uid-69944074-id-5831708.html(原创文章)使用Ubuntu,经常需要需要SSH远程连接,但是有时候会出现问题,难以捉摸,下面参考别人的,在结合自己的尝试总结下吧。服务器配完ubuntu系统以及LNMP环境以后,想用WINSCP远程登录,就需要开启SSH服务才能支持。SSH服务分为客户端和服务器。顾名思义,我想用putty远程登录Ubuntu服务器,所以需要安装SSH s

    2022年8月8日
    6
  • 2022保密教育线上培训考试 01[通俗易懂]

    2022保密教育线上培训考试 01[通俗易懂]试题1单选题1.机关、单位应当严格按照经过批准的范围对外提供涉密资料,并与外方签订(),限定涉密资料的使用和知悉范围。正确答案:B.保密协议2.按照公职人员政务处分法有关规定,有()行为造成不良后果或者影响的,予以警告、记过或者记大过;情节较重的,予以降级或者撤职;情节严重的,予以开除。正确答案:D.以上都正确3.下列关于涉密载体销毁的说法错误的是()。正确答案:B.涉密载体销毁的登记、审批记录无须保存4.保密期限是对国家秘密采取保密措施的时间要求。保密期限包括的形式有()。正

    2022年10月1日
    0
  • 如何通俗理解word2vec

    如何通俗理解word2vec如何通俗理解word2vec前言今年上半年,我在我的上一篇LSTM博客中写道:“众所周知,我们已经把SVM、CNN、xgboost、LSTM等很多技术,写的/讲的国内最通俗易懂了,接下来,我们要把BERT等技术也写的/讲的国内最通俗易懂,成为入门标准,而且不单单是从NNLMWord2VecSeq2SeqSeq…

    2022年5月16日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号