iT邦幫忙

DAY 20
8

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

Day20_使用dmv找出最消耗IO的查詢

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

--使用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

執行結果:

參考網址:
sys.dm_exec_query_stats
sys.dm_exec_sql_text


上一篇
Day19_使用DMV(Dynamic Management View)監控記憶體
下一篇
Day21_使用dmv找出執行最久的查詢
系列文
SQL SERVER 2008效能監控與最佳化30

尚未有邦友留言

立即登入留言