http://www.cnblogs.com/zhuque/archive/2012/11/08/2763343.htmlhtml
死鎖和堵塞一直是性能測試執行中關注的重點。 sql
下面是我整理的監控sql server數據庫,在性能測試過程當中是否出現死鎖、堵塞的SQL語句,還算比較準備,留下來備用。 數據庫
--每秒死鎖數量 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
在壓力測試過程當中,不間斷的按F5鍵執行上面的SQL語句,若是出現死鎖或者堵塞現象,就會在執行結果中羅列出來。若是每次連續執行SQL,都有死鎖或者堵塞出現,說明死鎖或者堵塞的比較嚴重。 session