广告
返回顶部
首页 > 资讯 > 数据库 >sqlserver中怎么查询死锁源头
  • 952
分享到

sqlserver中怎么查询死锁源头

2024-04-02 19:04:59 952人浏览 薄情痞子
摘要

这篇文章将为大家详细讲解有关sqlserver中怎么查询死锁源头,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。查找出SQLServer的死锁和阻塞的源头 -

这篇文章将为大家详细讲解有关sqlserver中怎么查询死源头,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

查找出SQLServer的死锁和阻塞的源头 --查找出SQLServer死锁和阻塞的源头

代码如下: 

use masterGodeclare @spid int,@bl intDECLARE s_cur CURSOR FORselect 0 ,blockedfrom (select * from sysprocesses where blocked>0 ) awhere not exists(select * from (select * from sysprocesses where blocked>0 ) bwhere a.blocked=spid)uNIOn select spid,blocked from sysprocesses where blocked>0OPEN s_curFETCH NEXT FROM s_cur INTO @spid,@blWHILE @@FETCH_STATUS = 0beginif @spid =0select '引起数据库死锁的是:'+ CAST(@bl AS VARCHAR(10)) + '进程号,其执行的SQL语法如下'elseselect '进程号SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '进程号SPID:'+ CAST(@bl AS VARCHAR(10)) +'阻塞,其当前进程执行的SQL语法如下'DBCC INPUTBUFFER (@bl )FETCH NEXT FROM s_cur INTO @spid,@blendCLOSE s_curDEALLOCATE s_cur

查看当前进程,或死锁进程,并能自动杀掉死进程 --查看当前进程,或死锁进程,并能自动杀掉死进程

因为是针对死的,所以如果有死锁进程,只能查看死锁进程。当然,你可以通过参数控制,不管有没有死锁,都只查看死锁进程。

代码如下:

 create proc p_lockinfo@kill_lock_spid bit=1, --是否杀掉死锁的进程,1 杀掉, 0 仅显示@show_spid_if_nolock bit=1 --如果没有死锁的进程,是否显示正常进程信息,1 显示,0 不显示asdeclare @count int,@s nvarchar(1000),@i intselect id=identity(int,1,1),标志,进程ID=spid,线程ID=kpid,块进程ID=blocked,数据库ID=dbid,数据库名=db_name(dbid),用户ID=uid,用户名=loginame,累计CPU时间=cpu,登陆时间=login_time,打开事务数=open_tran, 进程状态=status,工作站名=hostname,应用程序名=program_name,工作站进程ID=hostprocess,域名=nt_domain,网卡地址=net_addressinto #t from(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=0from master..sysprocesses a join (select blocked from master..sysprocesses group by blocked)b on a.spid=b.blocked where a.blocked=0union allselect '|_牺牲品_>',spid,kpid,blocked,dbid,uid,loginame,cpu,login_time,open_tran,status,hostname,program_name,hostprocess,nt_domain,net_address,s1=blocked,s2=1from master..sysprocesses a where blocked<>0)a order by s1,s2

select @count=@@rowcount,@i=1

if @count=0 and @show_spid_if_nolock=1begininsert #tselect 标志='正常的进程',spid,kpid,blocked,dbid,db_name(dbid),uid,loginame,cpu,login_time,open_tran,status,hostname,program_name,hostprocess,nt_domain,net_addressfrom master..sysprocessesset @count=@@rowcountend

if @count>0begincreate table #t1(id int identity(1,1),a nvarchar(30),b Int,EventInfo nvarchar(255))if @kill_lock_spid=1begindeclare @spid varchar(10),@标志 varchar(10)while @i<=@countbeginselect @spid=进程ID,@标志=标志 from #t where id=@iinsert #t1 exec('dbcc inputbuffer('+@spid+')')if @标志='死锁的进程' exec('kill '+@spid)set @i=@i+1endendelsewhile @i<=@countbeginselect @s='dbcc inputbuffer('+cast(进程ID as varchar)+')'from #t where id=@iinsert #t1 exec(@s)set @i=@i+1endselect a.*,进程的SQL语句=b.EventInfofrom #t a join #t1 b on a.id=b.idendgo

exec p_lockinfo

关于sqlserver中怎么查询死锁源头就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: sqlserver中怎么查询死锁源头

本文链接: https://www.lsjlt.com/news/58888.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • sqlserver中怎么查询死锁源头
    这篇文章将为大家详细讲解有关sqlserver中怎么查询死锁源头,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。查找出SQLServer的死锁和阻塞的源头 -...
    99+
    2022-10-18
  • SQLServer中怎么实现死锁
    这篇文章将为大家详细讲解有关SQLServer中怎么实现死锁,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  SQLServer怎么死锁  压力测试的业务场...
    99+
    2022-10-18
  • mysql查询死锁语句怎么写
    这篇“mysql查询死锁语句怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql...
    99+
    2023-02-16
    mysql
  • Java中怎么排查死锁
    这期内容当中小编将会给大家带来有关Java中怎么排查死锁,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先,我们构造一个死锁场景。如何构造一个死锁呢很简单,只要让线程1占有对象a的锁后,再去请求对象b的锁...
    99+
    2023-06-15
  • MySQL中怎么排查死锁
    这篇文章将为大家详细讲解有关MySQL中怎么排查死锁,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。死锁起因先介绍一下数据库和表情况,因为涉及到公司内部真是的...
    99+
    2022-10-18
  • sqlserver中怎么查询表索引
    sqlserver中怎么查询表索引,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。SELECT 索引名称=a.name,...
    99+
    2022-10-18
  • sql server中怎么排查死锁
    sql server中怎么排查死锁,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。死锁的四个必要条件:互斥条件(Mutual exclusi...
    99+
    2022-10-18
  • sqlserver中怎么处理分页查询
    这篇文章将为大家详细讲解有关sqlserver中怎么处理分页查询,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。top方案:sql code:selec...
    99+
    2022-10-18
  • SqlServer中怎么实现表单查询
    这篇文章给大家介绍SqlServer中怎么实现表单查询,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。SELECT语句的元素2.1 常规查询子句和逻辑处理顺序对数据表进行检索查询...
    99+
    2022-10-18
  • SQLSERVER中怎么实现分页查询
    SQLSERVER中怎么实现分页查询,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。第一种方案、最简单、普通的方法:复制代码 代...
    99+
    2022-10-18
  • sqlserver中怎么查询数据库大小
    本篇文章给大家分享的是有关sqlserver中怎么查询数据库大小,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。但Insus.NET想到的是,从...
    99+
    2022-10-18
  • SqlServer 中怎么实现按时间段查询
    SqlServer 中怎么实现按时间段查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。在写按时间段查询的sql语句的时候 一般我们会这么...
    99+
    2022-10-18
  • SqlServer 中怎么查询时日期格式化
    这篇文章将为大家详细讲解有关SqlServer 中怎么查询时日期格式化,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。SQL Server中文版的默认的日期字...
    99+
    2022-10-18
  • SQLServer和Oracle中怎么实现分页查询
    本篇文章为大家展示了SQLServer和Oracle中怎么实现分页查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.分页算法 最开始我在网上查找资料的...
    99+
    2022-10-18
  • SQLServer中怎么实现层次数据查询
    SQLServer中怎么实现层次数据查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。  SQLServer2000层次数据查询的实现方法...
    99+
    2022-10-18
  • SQLserver 中怎么实现分组统计查询
    SQLserver 中怎么实现分组统计查询,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。设置AccessCount字段可以根据需求在特定的...
    99+
    2022-10-18
  • sqlserver 中怎么使用sp_addlinkedserver实现多库查询
    sqlserver 中怎么使用sp_addlinkedserver实现多库查询 ,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。...
    99+
    2022-10-18
  • SQLServer数据库中怎么实现嵌套子查询
    本篇文章给大家分享的是有关SQLServer数据库中怎么实现嵌套子查询,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。  如何使用SQLServ...
    99+
    2022-10-18
  • sqlserver中怎么实现树形结构递归查询
    本篇文章为大家展示了sqlserver中怎么实现树形结构递归查询,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。公用表表达式(CTE),是一个在查询中定义的临时命名结...
    99+
    2022-10-18
  • Java项目中多个线程怎么查找死锁
    这篇文章将为大家详细讲解有关Java项目中多个线程怎么查找死锁,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编程语言的代表,实现了面...
    99+
    2023-06-15
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作