USE Master
GO

declare
@spid int
;

select
@spid = 419--null:all
;

;WITH DATA(spid,blockRelationship,blocked,spidLevel,hostname,program_name,loginame,login_time,BlockDuration,Status,sqlText,Memo,stmt_start,stmt_end,db_Name)
AS(
SELECT spid
,CONVERT(VARCHAR(256),' ') AS blockRelationship
,blocked
,spidLevel = 1
,hostname
,program_name
,loginame
,A.login_time
,DATEDIFF(MINUTE,A.login_time,GETDATE()) AS BlockDuration
,A.Status
,B.text
,Memo = CONVERT (varchar(128), 'BlockRoot')
,A.stmt_start
,A.stmt_end
,db_name(A.dbid) AS db_Name
FROM sys.sysprocesses AS A WITH (NOLOCK)
CROSS APPLY sys.dm_exec_sql_text(A.sql_handle) AS B
WHERE Blocked = 0
UNION ALL
SELECT
A.spid
,CONVERT(varchar(128),REPLICATE('L' ,B.spidLevel)) + CONVERT (varchar(128), A.blocked) AS Sort
,A.blocked
,spidLevel+1
,A.hostname
,A.program_name
,A.loginame
,A.login_time
,DATEDIFF(MINUTE,A.login_time,GETDATE()) AS BlockDuration
,A.Status
,C.text
,Memo = 'Blocked by ' + CONVERT (varchar(117), A.blocked)
,A.stmt_start
,A.stmt_end
,db_name(A.dbid) AS db_Name
FROM sys.sysprocesses AS A WITH (NOLOCK)
INNER JOIN DATA AS B
ON A.blocked = B.spid
CROSS APPLY sys.dm_exec_sql_text(A.sql_handle) AS C
--WHERE B.blocked = 0
)
SELECT spid
,blockRelationship
,blocked
,login_time
,GETDATE() AS [current_time]
,sql_statement = (SELECT TOP 1 SUBSTRING(sqlText,stmt_start / 2+1 ,
(
(
CASE WHEN stmt_end = -1 THEN (LEN(CONVERT(nvarchar(max),sqlText)) * 2)
ELSE stmt_end END
) - stmt_start) / 2+1
)
)
,db_Name
,spidLevel
,hostname
,loginame
,program_name
--,login_time
,BlockDuration
,status
,sqlText
,Memo
FROM DATA
--the block root spid
WHERE spidLevel = 1
AND spID IN(
SELECT blocked
FROM DATA
)
UNION ALL
SELECT spid
,blockRelationship
,blocked
,login_time
,GETDATE()
,sql_statement = (SELECT TOP 1 SUBSTRING(sqlText,stmt_start / 2+1 ,
(
(
CASE WHEN stmt_end = -1 THEN (LEN(CONVERT(nvarchar(max),sqlText)) * 2)
ELSE stmt_end END
) - stmt_start) / 2+1
)
)
,db_Name
,spidLevel
,hostname
,loginame
,program_name
--,login_time
,BlockDuration
,status
,sqlText
,Memo
FROM DATA
WHERE spidLevel > 1

--kill 68

IF @spid is not null

SELECT
database_name = DB_NAME(s1.dbid)
,sql_statement = (SELECT TOP 1 SUBSTRING(s2.text,stmt_start / 2+1 ,
(
(
CASE WHEN stmt_end = -1 THEN (LEN(CONVERT(nvarchar(max),s2.text)) * 2)
ELSE stmt_end END
) - stmt_start) / 2+1
)
)
,s2.text
,Duration_min = DATEDIFF(MINUTE,s1.login_time,GETDATE())
,s1.hostname
,s1.status
,s1.cpu
FROM sys.sysprocesses AS s1 WITH(NOLOCK)
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2
WHERE s1.spid = @spid;

--kill 87

查看指定spid的脚本当前运行情况和状态的更多相关文章

  1. 将shell脚本运行情况写入Rsyslog日志server

    在运维工作中,免不了编写一些脚本交由计划任务(cron)去定时运行完毕一些日常工作,实现运维工作自己主动化.比方在我的日常工作中备份数据是一项重要的工作,须要定时将数据备份到备份服器和一些其它的备份介 ...

  2. npm run start失败&Node.js 查询指定端口运行情况及终止占用端口办法

    缘由: node.js项目中运行npm run start命令脚本报错,No such file or directory 最开始以为是命令脚本找不到所谓的执行路径,但后面发现不是,是package. ...

  3. top---实时动态地查看系统的整体运行情况

    top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具.通过top命令所提供的互动式界面,用热键可以管理. 语法 top(选项) 选项 -b:以批处理模式 ...

  4. 如何通过web查看job的运行情况

    当我们将作业提交到hadoop 的集群上之后,我们会发现一个问题就是无法通过web查看job运行情况,比如启动了多少个map任务,启动多少个reduce任务啊,分配多少个conbiner等等.这些信息 ...

  5. Linux下查看Go语言软件运行情况

    在Linux下,使用"jps"可以查看用Java语言写的软件的运行情况,如果要查看GO语言写的软件的运行情况,可以使用"gops",但这不是系统自带的,需要进行 ...

  6. Centos flock 防止脚本重复运行

    如果crontab设定任务每分钟执行一次,但执行的任务需要花费5分钟,这时系统会再执行导致两个相同的任务在执行.发生这种情况下可能会出现一些并发问题,严重时会导致出现脏数据性能瓶颈等恶性循环.为了防止 ...

  7. windows下使用adb工具查看android程序cpu和内存消耗情况

    在实际的开发当中,尤其软件运行在一个硬件设备比较差的环境下,对软件占用资源大的问题是开发者们必须要解决的问题,系统比较卡.觉得应该看看程序的cpu和内存消耗 一直以来都在windows下编程,已经习惯 ...

  8. Linux查看CPU、内存、进程使用情况(转)

    在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要.在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会 ...

  9. Chrome扩展开发之二——Chrome扩展中脚本的运行机制和通信方式

    目录: 0.Chrome扩展开发(Gmail附件管理助手)系列之〇——概述 1.Chrome扩展开发之一——Chrome扩展的文件结构 2.Chrome扩展开发之二——Chrome扩展中脚本的运行机制 ...

随机推荐

  1. 使用jackson美化输出json/xml

    转载:http://www.cnblogs.com/xiwang/ 如何使用jackson美化输出json/xml 1.美化POJO序列化xml 下面将POJO列化为xml并打印. Person pe ...

  2. css中元素的位置

    一.display 1.display:none 隐藏标签 2.display:inline 将块级标签改为内联标签 3.display:block 将内联标签改为块级标签 4.display:inl ...

  3. 2019.01.08 codeforces 1009F. Dominant Indices(长链剖分)

    传送门 长链剖分模板题. 题意:给出一棵树,设fi,jf_{i,j}fi,j​表示iii的子树中距离点iii距离为jjj的点的个数,现在对于每个点iii要求出使得fif_ifi​取得最大值的那个jjj ...

  4. tp5系统核心设计提供了一些可能会需要的钩子(位置)

    钩子    描述 参数 app_init 应用初始化标签位 无 app_begin 应用开始标签位 当前调度信息 module_init 模块初始化标签位 当前请求对象实例 action_begin ...

  5. poj-2406(字符串hash)

    题目链接:传送门 思路:字符串hash,终止条件竟然判断错了,真是太大意了. #include<iostream> #include<cstdio> #include<c ...

  6. https网站引用http路径的js和css失效解决办法

    Jazzy  html  2015-03-26 在https的网站中引用http路径的js或css会导致不起作用,其形如: Html <script src="http://code. ...

  7. java常用设计模式四:观察者模式

    1.定义 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象.这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己.观察者模式又叫发布-订阅(Publis ...

  8. C++STL list

    list双向链表 高效进行插入删除数据 不可以随机存取元素,所以不支持at()和[]操作符.it可以++  --,不能it+5 节点序号从0开始 list<int> l; l.push_b ...

  9. ubuntu卸载软件命令,apt-get remove

    第一步,apt-get remove xxx :就是卸载xxx  或者 apt-get remove --purge xxx :卸载xxx并清除配置.   这两条命令对于依赖则是不管的.因为别的软件可 ...

  10. nginx location配置和rewrite写法

    location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配 ...