最近公司数据库同步机制常发生阻塞,时不时的导致PCB工程系统卡死现象,只有找到阻塞源头并处理掉,才以消除阻塞,但数据库中查看会话阻塞是通过二维表方式展示的父子会话进程ID的,是很难清楚的展示各会话进程ID的关系图的。

举例:这好比公路上的汽车我们开车前行,遇到前方塞车了,前方的车阻塞你,但后方又继续来车,你也成为后方的车阻塞者。

如果能以思维导图的方式展示那不完美了,我们可以通过此图可很快的找找到阻焊塞的源头,只要把源头打通,道路才能保持畅通。

 一.阻塞查询相关SQL语句

查询当前数据库阻塞:

select * from sys.sysprocesses where blocked<>0
查询阻塞的会话在执行的SQL以及运行状态:
select * from sys.sysprocesses where spid=197

查询阻塞会话执行所有DB库

select * from sys.sysdatabases WHERE dbid = 7
通过sql_handle句柄来查询正在跑的SQL的SQL_TEXT文本内容,即SQL内容:
SELECT * FROM ::FN_GET_SQL(0x0300FF7F587A2F063508ED005E9B000001000000)

删除进程会话ID

 KILL 197
 二.阻塞进程思维导图----展示效果

通过如图展示,非常清楚的知道阻塞进程源头来自哪个进程号了【源头:会话进程ID  536导致整个数据库阻塞】

 三.HTML实现代码

HTML实现代码:(用百度他们家的echar套用数据即可实现)

 
 
 四.阻塞进程数据源
       通过此SQL取出2部份数据
     1.EChart nodes 节点数据
     2.EChart links 关连关系数据
--查询当前数据库阻塞进程插入临时表
select * INTO #sysprocesses FROM sys.sysprocesses where blocked<>0 --获取进程节点【数据给到EChart nodes】
--将数据按3个等级分类,按实例图展示效果
SELECT
' {category:'+ (CASE WHEN PerentCount = 0 THEN '' WHEN ChildCount > 0 THEN '' ELSE '' END) +', name: '''+ CAST(spid AS VARCHAR(1000))
+''', value : '+ (CASE WHEN PerentCount = 0 THEN '' WHEN ChildCount > 0 THEN '' ELSE '' END) + '},'
FROM
(
SELECT
(SELECT COUNT(1) FROM #sysprocesses WHERE blocked = t.spid) ChildCount
,(SELECT COUNT(1) FROM #sysprocesses WHERE spid = t.spid) PerentCount
,spid
FROM
(
SELECT spid spid
FROM #sysprocesses
UNION ALL
SELECT blocked spid
FROM #sysprocesses
) t
GROUP BY spid
) t --获取节点之前的关连关系【数据给到EChart links】
SELECT '{source : '''+ CAST(spid AS VARCHAR(1000)) +''', target : '''+ CAST(blocked AS VARCHAR(1000))+''', weight : 1},'
FROM #sysprocesses drop table #sysprocesses
 

PCB SQL SERVER 数据库阻塞进程关系以思维导图方式呈现的实现方法的更多相关文章

  1. Python的进程与线程--思维导图

    Python的进程与线程--思维导图

  2. SQL Server数据库阻塞,死锁查询

    sql 查询卡顿数据库 SELECT SPID=p.spid, DBName = convert(CHAR(20),d.name), ProgramName = program_name, Login ...

  3. 快速定位MS Sql Server 数据库死锁进程

    最近在做一个大型项目,由于数据设计采用离散型数据库设计,以方便需求变更及用户自定义流程要素,因为要素用户自定义,数据完整性靠代码约束变得不太现实,只能依靠表间关系来约束,结果因此导致数据的操作经常产生 ...

  4. MS SQL Server数据库修复/MDF数据文件数据恢复/MDF质疑/mdf无法附加

    微软的SQL Server 数据库最常用的有两种类型的文件: 1.主要数据文件,文件后缀一般是.MDF: 2.事务日志文件,文件后缀一般是.LDF. 用户数据表.视图.存储过程等等数据,都是存放在MD ...

  5. 转载 50种方法优化SQL Server数据库查询

    原文地址 http://www.cnblogs.com/zhycyq/articles/2636748.html 50种方法优化SQL Server数据库查询 查询速度慢的原因很多,常见如下几种: 1 ...

  6. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用

    C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备)  https://blog.csdn.net/u013519551/article/details/51220841 1. . ...

  7. 5、SQL Server数据库、T-SQL

    SQL Server数据库基础 一.安装SQL Server数据库 setup.exe->安装->全新SQL Server独立安装或向现有安装添加功能->输入序列号->下一步- ...

  8. 你所不知道的SQL Server数据库启动过程(用户数据库加载过程的疑难杂症)

    前言 本篇主要是上一篇文章的补充篇,上一篇我们介绍了SQL Server服务启动过程所遇到的一些问题和解决方法,可点击查看,我们此篇主要介绍的是SQL Server启动过程中关于用户数据库加载的流程, ...

  9. SQL Server 数据库中关于死锁的分析

    SQL Server数据库发生死锁时不会像Oracle那样自动生成一个跟踪文件.有时可以在[管理]->[当前活动] 里看到阻塞信息(有时SQL Server企业管理器会因为锁太多而没有响应). ...

随机推荐

  1. QList, QLinkedList, QVector, QStack, QQueue的区别,以前也没见过QCache,而且可以自定义cost

    http://doc.qt.io/qt-4.8/containers.html http://doc.qt.io/qt-4.8/qcache.html

  2. RedHat 7.3+ORACLE 12c RAC 使用udev绑定磁盘

    在RedHat 7中,很多命令发生了改变,其中使用udev对磁盘绑定的命令也发生了变更,不再使用start_udev,而是改为了udevadm,下面具体介绍如何使用udev对磁盘进行绑定,这里对6和7 ...

  3. 基于X.509证书和SSL协议的身份认证过程实现(OpenSSL可以自己产生证书,有TCP通过SSL进行实际安全通讯的实际编程代码)good

    上周帮一个童鞋做一个数字认证的实验,要求是编程实现一个基于X.509证书认证的过程,唉!可怜我那点薄弱的计算机网络安全的知识啊!只得恶补一下了. 首先来看看什么是X.509.所谓X.509其实是一种非 ...

  4. jQuery简明教程

    本文参考w3cshool中文教程,网址:http://www.w3school.com.cn/jquery/index.asp 简介 jQuery是一个Javascript库,使用其的主要目的是简化J ...

  5. CUDA配置

    你问这个有多恶心,是真的很恶心!!! 首先推出一个博客上的内容,里面内容很不错,都是前车之鉴,很有用.http://blog.csdn.net/masa_fish/article/details/51 ...

  6. 广义线性模型(Generalized Linear Model)

    广义线性模型(Generalized Linear Model) http://www.cnblogs.com/sumai 1.指数分布族 我们在建模的时候,关心的目标变量Y可能服从很多种分布.像线性 ...

  7. 【图文】[新手]C++ 动态库导出函数名“乱码”及解决

    刚接触C++,在尝试从 dll 中导出函数时,发现导出的函数名都"乱码"了. 导出过程如下: 新建一个Win32项目: 新建的解决方案里有几个导出的示例: // 下列 ifdef ...

  8. Laravel:php artisan key:generate三种报错解决方案,修改默认PHP版本(宝塔面板)

    为了兼容N多个网站,服务器上有3个PHP版本5.3/5.6/7.2.宝塔默认为5.3,但是laravel5.7并不支持,所以在创建线上 .env 环境配置文件,初始化应用配置时候报错了. cp .en ...

  9. PDF Expert for Mac v2.4.22 中文破解版下载 PDF阅读编辑软件

    PDF Expert for Mac v2.4.22 中文破解版下载:http://h5ip.cn/CsRN PDF Expert for Mac, iOS 上最好用的 PDF 编辑器之一,现在终于打 ...

  10. 《大型网站系统与Java中间件》读书笔记 (中)

    前言 只有光头才能变强. 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 回顾上一篇: <大型网站系统与Java中间件& ...