在查看阻塞和死锁进程之前先了解一点相关知识

sp_who

也可以指定登录名来查看一些信息(进程ID、主机名、数据库等)

sp_who sa

sp_who2
也可以指定具体的进程号查看,如查看161进程号的一些情况(登录名、数据库、CPU时间、磁盘IO次数等)
sp_who2 161

结果如下:

SPID    Status    Login    HostName    BlkBy    DBName    Command    CPUTime    DiskIO    LastBatch    ProgramName    SPID    REQUESTID
161      sleeping                          starishop    TONY     .    TEST    AWAITING COMMAND    2189    65    12/03 9:47:56:    issLabelPrint    161      0

SELECT @@CONNECTIONS        --查看数据库自上次启动以来的连接次数
SELECT @@MAX_CONNECTIONS    --查看数据库的最大连接数

SELECT * FROM master..sysprocesses WHERE dbid IN (SELECT dbid FROM master..sysdatabases WHERE name='TEST')    --查看TEST数据库的连接进程情况

 sp_who_lock存储过程,存储显示阻塞,死锁的情况:

CREATE procedure sp_who_lock
as
begin     declare @spid int     declare @blk int     declare @count int     declare @index int     declare @lock tinyint      set @lock=0      create table #temp_who_lock      (      id int identity(1,1),      spid int,      blk int     )      if @@error<>0 return @@error      insert into #temp_who_lock(spid,blk)      select 0 ,blocked       from (select * from master..sysprocesses where blocked>0)a      where not exists(select * from  master..sysprocesses where a.blocked =spid and blocked>0)      union select spid,blocked from  master..sysprocesses where blocked>0      if @@error<>0 return @@error      select @count=count(*),@index=1 from #temp_who_lock      if @@error<>0 return @@error      if @count=0      begin     select '没有阻塞和死锁信息'     return 0      end     while @index<=@count      begin     if exists(select 1 from #temp_who_lock a where id>@index and exists(select 1 from #temp_who_lock where id<=@index and a.blk=spid))      begin     set @lock=1      select @spid=spid,@blk=blk from #temp_who_lock where id=@index     select '引起数据库死锁的是: '+ CAST(@spid AS VARCHAR(10)) + '进程号,其执行的SQL语法如下'     select  @spid, @blk    dbcc inputbuffer(@spid)      dbcc inputbuffer(@blk)      end     set @index=@index+1      end     if @lock=0       begin     set @index=1      while @index<=@count      begin     select @spid=spid,@blk=blk from #temp_who_lock where id=@index     if @spid=0      select '引起阻塞的是:'+cast(@blk as varchar(10))+ '进程号,其执行的SQL语法如下'     else      select '进程号SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '进程号SPID:'+ CAST(@blk AS VARCHAR(10)) +'阻塞,其当前进程执行的SQL语法如下'     dbcc inputbuffer(@spid)dbcc inputbuffer(@blk)      set @index=@index+1      end     end     drop table #temp_who_lock      return 0
end   

结束进程

kill spid

SQLSERVER查看阻塞和死锁的进程以及执行的语句相关推荐

  1. sqlserver监控阻塞(死锁)具体情况

    sqlserver监控阻塞(死锁)具体情况 公司sqlserver的监控系统主要是采用zabbix监控,但是zabbix的监控只能通过性能计数器给出报警,而无法给出具体的阻塞情况,比如阻塞会话.语句. ...

  2. SQLSERVER查看阻塞和CPU占用的会话,存储过程执行性能排行

    SELECT * FROM sys.sysprocesses WHERE DB_NAME(dbid)='TEST'; --TEST数据库的进程数 SELECT cpu_count,scheduler_ ...

  3. 探讨由于死锁或进程阻塞造成的ASP突然不能访问的问题

    现象:很多次了,每当我在dc9.cn上安装上计数系统或者反向链接系统就会出现这种情况.现象是自己的空间突然间不能访问,仔细观察是只有ASP不能访问而静态页面却可以访问,FTP访问也正常,看上去好像是I ...

  4. 第十六章——处理锁、阻塞和死锁(3)——使用SQLServer Profiler侦测死锁

    原文: 第十六章--处理锁.阻塞和死锁(3)--使用SQLServer Profiler侦测死锁 前言: 作为DBA,可能经常会遇到有同事或者客户反映经常发生死锁,影响了系统的使用.此时,你需要尽快侦 ...

  5. python中查看关键字需要在python解释器中执行_Day09-python基础之Cpython解释器支持的进程与线程...

    一.进程与线程理论基础 1.背景知识 进程的概念起源于操作系统,是操作系统最核心的概念. 进程是对正在运行程序的一个抽象,操作系统的其他所有内容都是围绕进程的概念展开的.所以想要真正了解进程,必须事先 ...

  6. 计算机网络阻塞和死锁,高并发和死锁

    互斥条件:一个资源每次只能被一个进程使用. 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放. 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺. 循环等待条件:若干进程之 ...

  7. 查出引起死锁的进程和SQL语句

    通过创建一个系统存储过程sp_who_lock.sql.代码如下: if exists (select * from dbo.sysobjects where id = object_id(N'[db ...

  8. 利用 sys.sysprocesses 检查 Sql Server的阻塞和死锁

    Sys.SysProcesses 系统表是一个很重要的系统视图,主要用来定位与解决Sql Server的阻塞和死锁. MSDN:包含正在 SQL Server 实例上运行的进程的相关信息.这些进程可以 ...

  9. linux查看当前用户终端,Linux----基本命令的使用(vi命令,查看文件内容,显示进程,切换用户等)...

    1.vi是linux系统上经常使用的一个文本编辑器,其有三种模式:命令模式.编辑模式(插入模式).末行模式. 命令模式-->编辑模式:"i a o I A O"linux 编 ...

最新文章

  1. go语言学习(一)——go语言简介和环境搭建
  2. mysql数据库游标有什么特性_MySQL数据库游标的概念介绍和游标的使用讲解
  3. wps 模拟分析 规划求解_Excel数据分析两大利器,趋势预测与规划求解
  4. 主成分分析(PCA)和独立成分分析(ICA)相关资料
  5. java查看上下文加载器_线程上下文类加载器
  6. java 调用祖父方法_在Java中调用祖父母方法:您不能
  7. 【PAT - 甲级1094】The Largest Generation (25分)(dfs建树)
  8. golang map合并_Golang之流式编程
  9. 快准狠!Intel论文揭示自家车牌识别算法:LPRNet
  10. Android 使用fastboot烧录镜像
  11. 0基础自学前端好,还是报班培训好?
  12. Spring MVC 入门基础(一)
  13. sql 整改措施 注入_改进的SQL防注入(加强抑错)-ASP教程,安全加密
  14. 黑盒测试 白盒测试 灰盒测试
  15. Android自定义九宫格图案解锁
  16. codeforces 129C - Statues 图论 DFS
  17. 上海满五非唯一,非普通性住房计算
  18. 直播回顾 | BPM平台与微服务架构天生契合(附资料下载)_Nebulogy_纳比云
  19. 《C Primer Plus》第二章——C语言概述(程序示例与解释,提高程序可读性,函数的定义与使用,调试,关键字,复习题与编程练习)
  20. tws耳机哪个品牌好?2023年tws耳机排行

热门文章

  1. HTMLTESTRunner自动化测试报告增加截图功能
  2. Android 学习心得(2)——Android内置数据库SQLite
  3. window.showModalDialog模式窗口无法在子窗口访问解决办法
  4. 基于Geoserver配置多图层地图以及利用uDig来进行样式配置
  5. 疯狂.NET 通用权限设计 C\S后台管理,B\S前台调用源码样例程序源码下载之 --- 操作权限...
  6. BCG-MFC 库对《支持重新启动管理器》都做了些什么
  7. 软考信息系统项目管理师_项目范围管理1---软考高级之信息系统项目管理师011
  8. Sharding-JDBC简介_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记006
  9. 大数据_Hbase-API访问_Java操作Hbase_数据操作_表删除_表获取所有数据---Hbase工作笔记0014
  10. k8s核心技术-资源编排(yaml)的介绍---K8S_Google工作笔记0018