MS SQL Server分析數據庫的I/O性能
1、sys.dm_io_virtual_file_stats
SELECT DB_NAME(vfs.database_id) AS database_name , vfs.database_id , vfs.FILE_ID , io_stall_read_ms / NULLIF(num_of_reads, 0) AS avg_read_latency , io_stall_write_ms / NULLIF(num_of_writes, 0) AS avg_write_latency , io_stall / NULLIF(num_of_reads + num_of_writes, 0) AS avg_total_latency , num_of_bytes_read / NULLIF(num_of_reads, 0) AS avg_bytes_per_read , num_of_bytes_written / NULLIF(num_of_writes, 0) AS avg_bytes_per_write , vfs.io_stall , vfs.num_of_reads , vfs.num_of_bytes_read , vfs.io_stall_read_ms , vfs.num_of_writes , vfs.num_of_bytes_written , vfs.io_stall_write_ms , size_on_disk_bytes / 1024 / 1024. AS [size_on_disk_mbytes(MB)] , mf.physical_name FROM sys.dm_io_virtual_file_stats(DB_ID('master'), 1) AS vfs JOIN sys.master_files AS mf ON vfs.database_id = mf.database_id AND vfs.FILE_ID = mf.FILE_ID ORDER BY avg_total_latency DESC |
如果sys.dm_io_virtual_file_stats(null,null)那么會顯示所有默認數據庫和曾經附加過的數據庫的信息,這里只想看master數據庫的I/O信息,對數據庫上執行后結果分析如下:
2、sys.dm_io_cluster_shared_drives和sys.dm_io_cluster_valid_path_names
如果你的數據庫架構采用了集群部署,那么可以通過這兩個查到關于集群節點的信息。未來sys.dm_io_cluster_shared_drives將被廢棄,采用sys.dm_io_cluster_valid_path_names代替。