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. [Robot Framework] 怎么做数学运算?

    运用BuiltIn里面的Set Variable

  2. 隐马尔科夫_HMM

    有向图 抽象:λ代表输入:输入一个句子,λi表示句子中的每个字 O代表输出:[B词首/M词中/E词尾/S单独成词] max=maxP(O1 O2 On/ λ1 λ2 λn) 假设: (1)当前观察值只 ...

  3. 关于使用的xshll和xftp中乱码咋办?

    1.Xshll中 2.Xftp中同理都是一样的设置

  4. STL基础2:vector中使用结构体

    #include <iostream> #include <vector> #include <numeric> #include <algorithm> ...

  5. m序列生成电路

    m序列

  6. ListView item中有button或EditText时 点击事件失效问题的解决

    加入:android:descendantFocusability="blocksDescendants" 代码如下: <LinearLayout xmlns:android ...

  7. Mvvm Light 无法添加MvvmView(Win81)的问题

    After I create a MvvmLight(Win81) project, I want add a new view , but there is only MvvmView(Win8), ...

  8. bundler简介(ruby gem)

    簡介 Bundler   RubyGem 是包裝.散佈Ruby程式庫的標準方式,相關文件可以參考 RubyGems Guides 的說明,或是 簡介 plugins 中的第二個例子.在使用rails ...

  9. sqlserver中如何将mdf文件还原到数据库

  10. 2018.11.01 bzoj4325: NOIP2015 斗地主(贪心+搜索)

    传送门 原来一直以为是一道大模拟. 没想到是一道搜索+最优性剪枝 如何搜最优呢? 我们考虑怎么最快出完. 大概是应该尽量出当前能出出去最多的吧. 于是我们选择优先出顺子. 这样做有什么好处呢? 我们会 ...