{ "id": "7df25f65-0eb1-414f-96d5-a150e26c6295", "prefix": "dmvLatency", "description": "check disks latency. cumulative numbers since start of the server", "body": "-- Drive level latency information (Query 19) (Drive Level Latency)\r\n-- Based on code from Jimmy May\r\nSELECT\t[Drive]\r\n\t ,CASE WHEN num_of_reads = 0 THEN 0\r\n\t\t\t ELSE (io_stall_read_ms / num_of_reads)\r\n\t\tEND AS [Read Latency]\r\n\t ,CASE WHEN io_stall_write_ms = 0 THEN 0\r\n\t\t\t ELSE (io_stall_write_ms / num_of_writes)\r\n\t\tEND AS [Write Latency]\r\n\t ,CASE WHEN (num_of_reads = 0 AND num_of_writes = 0 ) THEN 0\r\n\t\t\t ELSE (io_stall / (num_of_reads + num_of_writes))\r\n\t\tEND AS [Overall Latency]\r\n\t ,CASE WHEN num_of_reads = 0 THEN 0\r\n\t\t\t ELSE (num_of_bytes_read / num_of_reads)\r\n\t\tEND AS [Avg Bytes/Read]\r\n\t ,CASE WHEN io_stall_write_ms = 0 THEN 0\r\n\t\t\t ELSE (num_of_bytes_written / num_of_writes)\r\n\t\tEND AS [Avg Bytes/Write]\r\n\t ,CASE WHEN (num_of_reads = 0 AND num_of_writes = 0 ) THEN 0\r\n\t\t\t ELSE ((num_of_bytes_read + num_of_bytes_written) / (num_of_reads + num_of_writes))\r\n\t\tEND AS [Avg Bytes/Transfer]\r\nFROM\t(SELECT\tLEFT(UPPER(mf.physical_name), 2) AS Drive\r\n\t\t\t ,SUM(num_of_reads) AS num_of_reads\r\n\t\t\t ,SUM(io_stall_read_ms) AS io_stall_read_ms\r\n\t\t\t ,SUM(num_of_writes) AS num_of_writes\r\n\t\t\t ,SUM(io_stall_write_ms) AS io_stall_write_ms\r\n\t\t\t ,SUM(num_of_bytes_read) AS num_of_bytes_read\r\n\t\t\t ,SUM(num_of_bytes_written) AS num_of_bytes_written\r\n\t\t\t ,SUM(io_stall) AS io_stall\r\n\t\t FROM\tsys.dm_io_virtual_file_stats(NULL, NULL) AS vfs\r\n\t\t\t\tINNER JOIN sys.master_files AS mf WITH (NOLOCK) ON vfs.database_id = mf.database_id\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t AND vfs.file_id = mf.file_id\r\n\t\t GROUP BY LEFT(UPPER(mf.physical_name), 2)\r\n\t\t) AS tab\r\nORDER BY [Overall Latency]\r\nOPTION\t(RECOMPILE);\r\n\r\n-- Shows you the drive-level latency for reads and writes, in milliseconds\r\n" }