iT邦幫忙

DAY 21
8

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

Day21_使用dmv找出執行最久的查詢

使用(Dynamic Management View)找出執行時間最久的查詢
找出執行時間最久的SQL指令有助於我們減少資料庫的負擔,因為執行時間過長的SQL指令占用資料庫的資源也很長,所出這些SQL指令後加以修改可以不但可以縮短執行時間也可以增加資料庫的效能。

程式碼如下:

SELECT TOP 10
  [總執行時間(秒)]		=CAST(a.total_elapsed_time / 1000000.0 AS DECIMAL(16, 2))  
, [執行次數]				=a.execution_count
, [平均執行時間(秒)]	=CAST(a.total_elapsed_time / 1000000.0 / a.execution_count AS DECIMAL(16, 2)) 
, [SQL指令]				=SUBSTRING (b.text,(a.statement_start_offset/2) + 1,500) 
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_NAME%'--去除一些系統的SQL指令
ORDER BY [平均執行時間(秒)] DESC

執行結果:

參考網址:
sys.dm_exec_query_stats


上一篇
Day20_使用dmv找出最消耗IO的查詢
下一篇
Day22_使用DMV找出執行失敗的SQLJOBs
系列文
SQL SERVER 2008效能監控與最佳化30

尚未有邦友留言

立即登入留言