2011年10月28日 星期五

使用DMV(Dynamic Management View)找出最消耗IO的查詢




通常SQL指令的效能不佳的原因有許多,其中的一個原因是因為大量的IO的緣故,所以增加SQL指令的效能方法之一就是減少IO的產生,為了要減少IO的產生第一件要務就是找處最花費IOSQL指令,以下就是使用DMV找出最消耗IOSQL指令。

--使用dmv找出最消耗IO的查詢
/*
logical_reads:查詢時從DATA CACHE讀取PAGE
physical_reads:查詢時從DATA CACHE讀取PAG從硬碟讀取資料
*/
SELECT TOP 10
 [IO總和] = (A.total_logical_reads + A.total_physical_reads+ A.total_physical_reads)
,[平均IO] = (A.total_logical_reads + A.total_physical_reads)/A.execution_count
,A.execution_count [執行次數]
,B.[text] [SQL指令]
FROM sys.dm_exec_query_stats A
CROSS APPLY sys.dm_exec_sql_text(A.sql_handle) as B
WHERE B.[text] NOT LIKE '%SCHEMA_NAME(%'--去除系統的SQL指令
ORDER BY [IO總和] DESC


執行結果:

沒有留言:

張貼留言