原文:监控SQL Server正在执行的SQL语句和死锁情况

SELECT [Individual Query] = SUBSTRING(qt.TEXT, er.statement_start_offset / 2, (
CASE
WHEN er.statement_end_offset = - 1
THEN LEN(CONVERT(NVARCHAR(MAX), qt.TEXT)) * 2
ELSE er.statement_end_offset
END - er.statement_start_offset
) / 2),
[Parent Query] = qt.TEXT,
[Spid] = session_Id,
ecid,
[Database] = DB_NAME(sp.dbid),
[User] = nt_username,
[Status] = er.STATUS,
[Wait] = wait_type,
Program = program_name,
Hostname,
nt_domain,
start_time
FROM sys.dm_exec_requests er
INNER JOIN sys.sysprocesses sp ON er.session_id = sp.spid
CROSS APPLY sys.dm_exec_sql_text(er.sql_handle) AS qt
WHERE session_Id > 50 /* Ignore system spids.*/
AND session_Id NOT IN (@@SPID) --每秒死锁数量
SELECT *
FROM sys.dm_os_performance_counters
WHERE counter_name LIKE 'Number of Deadlocksc%'; --查询当前阻塞
WITH CTE_SID(BSID, SID, sql_handle) AS (
SELECT blocking_session_id,
session_id,
sql_handle
FROM sys.dm_exec_requests
WHERE blocking_session_id <> 0
UNION ALL
SELECT A.blocking_session_id,
A.session_id,
A.sql_handle
FROM sys.dm_exec_requests A
JOIN CTE_SID B ON A.SESSION_ID = B.BSID
) SELECT C.BSID,
C.SID,
S.login_name,
S.host_name,
S.STATUS,
S.cpu_time,
S.memory_usage,
S.last_request_start_time,
S.last_request_end_time,
S.logical_reads,
S.row_count,
q.TEXT
FROM CTE_SID C
JOIN sys.dm_exec_sessions S ON C.sid = s.session_id
CROSS APPLY sys.dm_exec_sql_text(C.sql_handle) Q
ORDER BY sid --检查表的更新排他锁
DECLARE @t_lock AS TABLE (
[spid] [smallint] NULL,
[dbid] [smallint] NOT NULL,
[ObjId] [int] NOT NULL,
[IndId] [smallint] NOT NULL,
[Type] [nvarchar](4) NULL,
[Resource] [nvarchar](32) NULL,
[Mode] [nvarchar](8) NULL,
[Status] [nvarchar](5) NULL
) INSERT INTO @t_lock
EXEC sp_lock SELECT *,
[Database] = DB_NAME([dbid]),
[Object] = OBJECT_NAME([ObjId], [dbid])
FROM @t_lock
WHERE [spid] > 50 /* Ignore system spids.*/
AND [spid] NOT IN (@@SPID)
AND [Type] = 'TAB'
AND [Mode] IN (
'U',
'IU',
'SIU',
'UIX',
'BU',
'RangeS_U',
'RangeI_U',
'X',
'IX',
'SIX',
'UIX',
'RangeI_X',
'RangeX_S',
'RangeX_U',
'RangeX_X'
)

监控SQL Server正在执行的SQL语句和死锁情况的更多相关文章

  1. SQL Server 显示执行一条语句的执行时间

    set statistics time on执行语句set statistics time off

  2. Sql server定时执行某个sql 通过Windows 计划任务(非代理Job方式)

    建立 bat文件.内容如下: osql -s "xxx.xxx.xx.x" -U sa -P sa -d DB -i TruncateSql.sql osql -S "l ...

  3. 【SQL Server DBA】日常巡检语句3:特定监控(阻塞、top语句、索引、作业)

    原文:[SQL Server DBA]日常巡检语句3:特定监控(阻塞.top语句.索引.作业) 1.查询阻塞信息.锁定了哪些资源 --1.查看阻塞信息 select spid,loginame,wai ...

  4. 了解Sql Server的执行计划

    前一篇总结了Sql Server Profiler,它主要用来监控数据库,并跟踪生成的sql语句.但是只拿到生成的sql语句没有什么用,我们可以利用这些sql语句,然后结合执行计划来分析sql语句的性 ...

  5. SQL Server 优化-执行计划

    对于SQL Server的优化来说,优化查询可能是很常见的事情.由于数据库的优化,本身也是一个涉及面比较的广的话题, 因此本文只谈优化查询时如何看懂SQL Server查询计划.毕竟我对SQL Ser ...

  6. 第1/24周 SQL Server 如何执行一个查询

    大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Server如何执行一个查询来建立基础.这个部分非常重要, ...

  7. SQL Server中常用的SQL语句(转):

    SQL Server中常用的SQL语句 转自:http://www.cnblogs.com/rainman/archive/2013/05/04/3060428.html 1.概述 名词 笛卡尔积.主 ...

  8. 第六篇 SQL Server安全执行上下文和代码签名

    本篇文章是SQL Server安全系列的第六篇,详细内容请参考原文. SQL Server决定主体是否有必要的执行代码权限的根本途径是其执行上下文规则.这一切都可能复杂一个主体有执行代码的权限,但是却 ...

  9. 第1周 SQL Server 如何执行一个查询

    原文:第1周 SQL Server 如何执行一个查询 大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Se ...

随机推荐

  1. git使用及一些配置、问题

    安装https://git-for-windows.github.io/ 一.绑定用户名.邮件地址 git config --global user.name "Your Name" ...

  2. System.Activator类

    public static ObjectHandle CreateInstance(string assemblyName, string typeName); 该类有一个方法. // // 摘要: ...

  3. 像Excel的表格table

    推荐:Spread.js 地址:点击打开链接 Demo:点击打开链接

  4. B-Tree索引和Hash索引的区别

    Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-T ...

  5. (转)myeclipse工程 junit不能运行 ClassNotFoundException

    博文转自:http://www.cnblogs.com/java-zone/articles/2730722.html myeclipse工程   junit不能运行 1 2 3 4 5 6 7 8 ...

  6. 强制打开qq

    (function(){ var QQ='10001'; //换成你公司的企业QQ(客服QQ) var str='tencent://message/?Menu=yes&uin='+QQ+'& ...

  7. poj 2079 Triangle (二维凸包旋转卡壳)

    Triangle Time Limit: 3000MS   Memory Limit: 30000KB   64bit IO Format: %I64d & %I64u Submit Stat ...

  8. 将GDB中的输出定向到文件

    1 set args >output.log 三种方法,一种通过tee在启动时重定向: 1 gdb |tee -a file 第二种在run时加入: 1 run <input.txt &g ...

  9. linux下挂载U盘【转】

    转自:http://www.cnblogs.com/yeahgis/archive/2012/04/05/2432779.html 一.Linux挂载U盘:1.插入u盘到计算机,如果目前只插入了一个u ...

  10. 戴文的Linux内核专题:02 源代码【转】

    转自:https://linux.cn/article-2190-1.html?pr 在下载并解压内核源代码后,用户可以看到许多文件夹和文件.尝试去找一个特定的文件或许是一个挑战.谢天谢地,源代码以一 ...