监控SQL Server正在执行的SQL语句和死锁情况
原文:监控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语句和死锁情况的更多相关文章
- SQL Server 显示执行一条语句的执行时间
set statistics time on执行语句set statistics time off
- Sql server定时执行某个sql 通过Windows 计划任务(非代理Job方式)
建立 bat文件.内容如下: osql -s "xxx.xxx.xx.x" -U sa -P sa -d DB -i TruncateSql.sql osql -S "l ...
- 【SQL Server DBA】日常巡检语句3:特定监控(阻塞、top语句、索引、作业)
原文:[SQL Server DBA]日常巡检语句3:特定监控(阻塞.top语句.索引.作业) 1.查询阻塞信息.锁定了哪些资源 --1.查看阻塞信息 select spid,loginame,wai ...
- 了解Sql Server的执行计划
前一篇总结了Sql Server Profiler,它主要用来监控数据库,并跟踪生成的sql语句.但是只拿到生成的sql语句没有什么用,我们可以利用这些sql语句,然后结合执行计划来分析sql语句的性 ...
- SQL Server 优化-执行计划
对于SQL Server的优化来说,优化查询可能是很常见的事情.由于数据库的优化,本身也是一个涉及面比较的广的话题, 因此本文只谈优化查询时如何看懂SQL Server查询计划.毕竟我对SQL Ser ...
- 第1/24周 SQL Server 如何执行一个查询
大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Server如何执行一个查询来建立基础.这个部分非常重要, ...
- SQL Server中常用的SQL语句(转):
SQL Server中常用的SQL语句 转自:http://www.cnblogs.com/rainman/archive/2013/05/04/3060428.html 1.概述 名词 笛卡尔积.主 ...
- 第六篇 SQL Server安全执行上下文和代码签名
本篇文章是SQL Server安全系列的第六篇,详细内容请参考原文. SQL Server决定主体是否有必要的执行代码权限的根本途径是其执行上下文规则.这一切都可能复杂一个主体有执行代码的权限,但是却 ...
- 第1周 SQL Server 如何执行一个查询
原文:第1周 SQL Server 如何执行一个查询 大家好,欢迎来到第1周的SQL Server性能调优培训.在我们进入SQL Server性能调优里枯燥难懂的细节内容之前,我想通过讲解SQL Se ...
随机推荐
- Metaspolit
Metaspolit介绍 Metasploit是一款开源的安全漏洞检测工具,安全工作人员常用 Metasploit工具来检测系统的安全性.Metasploit Framework (MSF) 在200 ...
- SecureCRT配置设置
颜色设置 参考: http://blog.csdn.net/zklth/article/details/8937905 配置导入.导出 参考: http://jingyan.baidu.com ...
- Codeforces 932.A Palindromic Supersequence
A. Palindromic Supersequence time limit per test 2 seconds memory limit per test 256 megabytes input ...
- Reinstall msdtc on Windows
Reinstall MSDTC The system reported an unexpected error condition. You can resolve this condition by ...
- Linux下find命令参数及用法详解
由于find具有强大的功能,所以它的选项也很多,其中大部分选项都值得我们花时间来了解一下.即使系统中含有网络文件系统( NFS),find命令在该文件系统中同样有效,只你具有相应的权限.在运行一个非常 ...
- 兼容firstChild和firstElementChild
1.nextSibling和nextElementSibling 顾名思义,就是找下一个节点 nextSibling在低版本浏览器中可以顺利找到下一个元素节点,而在正常浏览器中找到的包含中间空格. n ...
- EOJ-大学生程序设计邀请赛(华东师范大学)-E-黑心啤酒厂
E. 黑心啤酒厂 Time limit per test: 1.0 seconds Time limit all tests: 1.0 seconds Memory limit: 256 megaby ...
- 转一下网上找来的tortoise git不用每次都输入邮箱和密码的方法。备查看
每次git clone 和push 都要输入用户名和密码.虽然安全,但在本机上每次都输有些麻烦,如何记住用户名和密码呢? 当你配置好git后,在C:\Documents and Settings\Ad ...
- 行为型设计模式之迭代器模式(Iterator)
结构 意图 提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示. 适用性 访问一个聚合对象的内容而无需暴露它的内部表示. 支持对聚合对象的多种遍历. 为遍历不同的聚合结构提供一 ...
- WPF中的URI
在 Windows Presentation Foundation (WPF) 中,使用统一资源标识符 (URI) 标识和加载文件的方式有很多,包括: 指定当应用程序第一次启动时显示的用户界面 (UI ...