Created
May 13, 2022 14:07
-
-
Save Otterpohl/bc6457669c129abab9f2f0126c789ee4 to your computer and use it in GitHub Desktop.
Gets the servers disk statistics and details
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
SELECT DB_NAME(a.database_id) AS [Database Name], | |
b.name + N' [' + b.type_desc COLLATE SQL_Latin1_General_CP1_CI_AS + N']' AS [Logical File Name], | |
UPPER(SUBSTRING(b.physical_name, 1, 2)) AS [Drive], | |
CAST(((a.size_on_disk_bytes / 1024.0) / (1024.0 * 1024.0)) AS DECIMAL(9, 2)) AS [Size (GB)], | |
a.io_stall_read_ms AS [Total IO Read Stall], | |
a.num_of_reads AS [Total Reads], | |
CASE | |
WHEN a.num_of_bytes_read > 0 THEN | |
CAST(a.num_of_bytes_read / 1024.0 / 1024.0 / 1024.0 AS NUMERIC(23, 1)) | |
ELSE | |
0 | |
END AS [GB Read], | |
CAST(a.io_stall_read_ms / (1.0 * a.num_of_reads) AS INT) AS [Avg Read Stall (ms)], | |
CASE | |
WHEN b.type = 0 THEN | |
30 /* data files */ | |
WHEN b.type = 1 THEN | |
5 /* log files */ | |
ELSE | |
0 | |
END AS [Max Rec Read Stall Avg], | |
a.io_stall_write_ms AS [Total IO Write Stall], | |
a.num_of_writes AS [Total Writes], | |
CASE | |
WHEN a.num_of_bytes_written > 0 THEN | |
CAST(a.num_of_bytes_written / 1024.0 / 1024.0 / 1024.0 AS NUMERIC(23, 1)) | |
ELSE | |
0 | |
END AS [GB Written], | |
CAST(a.io_stall_write_ms / (1.0 * a.num_of_writes) AS INT) AS [Avg Write Stall (ms)], | |
CASE | |
WHEN b.type = 0 THEN | |
30 /* data files */ | |
WHEN b.type = 1 THEN | |
2 /* log files */ | |
ELSE | |
0 | |
END AS [Max Rec Write Stall Avg], | |
b.physical_name AS [Physical File Name], | |
CASE | |
WHEN b.name = 'tempdb' THEN | |
'N/A' | |
WHEN b.type = 1 THEN | |
'N/A' /* log files */ | |
ELSE | |
'PAGEIOLATCH*' | |
END AS [Read-Related Wait Stat], | |
CASE | |
WHEN b.type = 1 THEN | |
'WRITELOG' /* log files */ | |
WHEN b.name = 'tempdb' THEN | |
'xxx' /* tempdb data files */ | |
WHEN b.type = 0 THEN | |
'ASYNC_IO_COMPLETION' /* data files */ | |
ELSE | |
'xxx' | |
END AS [Write-Related Wait Stat], | |
GETDATE() AS [Sample Time], | |
b.type_desc | |
FROM sys.dm_io_virtual_file_stats(NULL, NULL) AS a | |
INNER JOIN sys.master_files AS b | |
ON a.file_id = b.file_id | |
AND a.database_id = b.database_id | |
WHERE a.num_of_reads > 0 | |
AND a.num_of_writes > 0 | |
ORDER BY CAST(a.io_stall_read_ms / (1.0 * a.num_of_reads) AS INT) DESC; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment