原文:监控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'
)

最新文章

  1. mongo DB的一般操作
  2. Spring中的SPEL
  3. Python 性能优化——对象绑定
  4. Android往SD卡上存储文件
  5. 有两个地方,用到了javabean对象和属性字符串值之间的转换
  6. shell之并行
  7. ant脚本编写
  8. 【转】 BSS段 数据段 代码段 堆栈 指针 vs 引用
  9. delphi 中 $是什么意思 串口中使用
  10. 在Windows下用MingW 4.5.2编译live555
  11. etrace跟踪Nginx代码+ FASTCGI
  12. mysql的下载地址+Download WinMD5
  13. Maven settings.xml
  14. Codeforces 279D The Minimum Number of Variables 状压dp
  15. 网页中顶部banner图自适应css
  16. 单元测试以文件流的形势传参调用api进行测试
  17. adb push 和 adb pull命令
  18. mysql中将一个数据类型转换成另外的数据类型?mysql中cast函数的使用?
  19. 《前端JavaScript面试技巧》笔记一
  20. delete in javascript

热门文章

  1. shell之dialog提示窗口
  2. C#程序怎么写,效率高
  3. 【bzoj1270】[BeijingWc2008]雷涛的小猫 dp
  4. TJOI2018游记
  5. 【CF Edu 28 A. Curriculum Vitae】
  6. code forces 990C
  7. 7月15号day7总结
  8. Jquery插件使用 焦点图插件 MyFocus ,另外记录一款插件 KinMaxShow大背景图插件。
  9. 在iOS上实现一个简单的日历控件
  10. C++ MFC std::string转为 std::wstring