SQLServer 2008数据库查看死锁、堵塞的SQL语句
2012-11-08 15:48
435 查看
死锁和堵塞一直是性能测试执行中关注的重点。
下面是我整理的监控sql server数据库,在性能测试过程中是否出现死锁、堵塞的SQL语句,还算比较准备,留下来备用。
--每秒死锁数量
[html] view plaincopyprint?
SELECT *
FROM sys.dm_os_performance_counters
WHERE counter_name LIKE 'Number of Deadlocksc%';
--查询当前阻塞
[html] view plaincopyprint?
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
在压力测试过程中,不间断的按F5键执行上面的SQL语句,如果出现死锁或者堵塞现象,就会在执行结果中罗列出来。如果每次连续执行SQL,都有死锁或者堵塞出现,说明死锁或者堵塞的比较严重。
下面是我整理的监控sql server数据库,在性能测试过程中是否出现死锁、堵塞的SQL语句,还算比较准备,留下来备用。
--每秒死锁数量
[html] view plaincopyprint?
SELECT *
FROM sys.dm_os_performance_counters
WHERE counter_name LIKE 'Number of Deadlocksc%';
SELECT * FROM sys.dm_os_performance_counters WHERE counter_name LIKE 'Number of Deadlocksc%';
--查询当前阻塞
[html] view plaincopyprint?
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
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
在压力测试过程中,不间断的按F5键执行上面的SQL语句,如果出现死锁或者堵塞现象,就会在执行结果中罗列出来。如果每次连续执行SQL,都有死锁或者堵塞出现,说明死锁或者堵塞的比较严重。
相关文章推荐
- SQLServer 2008数据库查看死锁、堵塞的SQL语句
- SQLServer 2008数据库查看死锁、堵塞的SQL语句
- [转]SQLServer 2008数据库查看死锁、堵塞的SQL语句
- SQLServer 2008数据库查看死锁、堵塞的SQL语句
- SQLServer 2008数据库查看死锁、堵塞的SQL语句
- SQLServer 2008数据库查看死锁、堵塞的SQL语句
- SQLServer 2008数据库查看死锁、堵塞的SQL语句
- SQLServer 2008数据库查看死锁、堵塞的SQL语句
- SQLServer 2008数据库查看死锁、堵塞的SQL语句
- SQLServer 2008数据库查看死锁、堵塞的SQL语句
- 【SQLServer 2008】数据库查看死锁、阻塞的SQL语句
- SQLServer 数据库查看死锁、堵塞的SQL语句
- SQL语句(sp_helpdb)查看数据库属性信息,查看数据库文件路径用得到
- Sqlserver 2008 T-sql 备份还原数据库
- SQLServer 2008中SQL增强之三 Merge(在一条语句中使用
- Informix杀掉死锁的方法和查看死锁的sql语句(转)
- 怎样用SQL Server 2008 SQL语句将Excel数据导入到数据库里指定的表里面?(
- Visual C# 2008+SQL Server 2005 数据库与网络开发--9.4.1 在模板中使用T-SQL语句
- 用 SQL 语句查看 SQL Server 2008 端口号
- SQLServer中用T―SQL命令查询一个数据库中有哪些表的sql语句