iT邦幫忙

DAY 23
6

SQL SERVER 2008效能監控與最佳化系列 第 23

Day23_使用dmv找出被Blok最久的查詢

要快速找出Block最久的SQL指令使用DMV是一個快速的方法。
使用sys.dm_exec_query_stats與sys.dm_exec_sql_text找出被Block最久的SQL指令,如果有些SQL指令Block太久,會早成其他SQL指令要等待它釋放資源才能完成工作,這樣會大大影響資料庫的效能,甚至引起死結,要快速找出Block最久的SQL指令使用DMV是一個快速的方法,以下的程式碼就是使用DMV找出Block最久的SQL指令。

SELECT TOP 10 [全部block時間(秒)]=CAST((a.total_elapsed_time - a.total_worker_time) /1000000.0 AS DECIMAL(16,2)) 
,[執行次數]= a.execution_count 
,[SQL指令]= b.text 
FROM sys.dm_exec_query_stats A
CROSS APPLY sys.dm_exec_sql_text(a.sql_handle) as b
WHERE a.total_elapsed_time > 0 AND b.text  NOT LIKE '%SCHEMA%'
ORDER BY 1 DESC

執行結果:


上一篇
Day22_使用DMV找出執行失敗的SQLJOBs
下一篇
Day24_使用DMV找出目前正在執行的查詢
系列文
SQL SERVER 2008效能監控與最佳化30

尚未有邦友留言

立即登入留言