首先尝试检查您的磁盘延迟时间是否在阈值内。
您可以检查此链接以配置Perfmon:SQL Server磁盘性能指标-第1部分-
最重要的磁盘性能指标
该链接还提供了一些工具,可以对您的IO进行压力测试并获得报告。
如何使用SQLIOSim实用程序模拟磁盘子系统上的SQL Server活动
如果磁盘IO处于延迟范围内,请尝试查找引起高IO的查询,导致磁盘IO高的原因之一可能是不合适的索引,您可能需要添加正确的索引,以使SQL不会读取不必要的数据
另外,您可能会拥有较少的内存,因为内存较少会导致SQL刷新缓冲池缓存。这也会导致IO问题。
DMV检查导致高IO的查询
SELECt TOP 25 cp.usecounts AS [execution_count] ,qs.total_worker_time AS CPU ,qs.total_elapsed_time AS ELAPSED_TIME ,qs.total_logical_reads AS LOGICAL_READS ,qs.total_logical_writes AS LOGICAL_WRITES ,qs.total_physical_reads AS PHYSICAL_READS ,SUBSTRINg(text, CASE WHEN statement_start_offset = 0 OR statement_start_offset IS NULL THEN 1 ELSE statement_start_offset/2 + 1 END, CASE WHEN statement_end_offset = 0 OR statement_end_offset = -1 OR statement_end_offset IS NULL THEN LEN(text) ELSE statement_end_offset/2 END -CASE WHEN statement_start_offset = 0 OR statement_start_offset IS NULL THEN 1 ELSE statement_start_offset/2 END + 1 ) AS [Statement] FROM sys.dm_exec_query_stats qs join sys.dm_exec_cached_plans cp on qs.plan_handle = cp.plan_handle CROSS APPLY sys.dm_exec_sql_text(cp.plan_handle) stORDER BY qs.total_logical_reads DESC;



