sqlserver的IO性能检查
这一个月老被一个信息科科长纠缠,原因就是他们的sql server 2008 R2老是定期的写入性能低下。我是这样认为的,但身边的人似乎都不这么想。每每我对那个挂在一个交换机上的网络存储表达担忧时,这科长总不以为然。
直到利用window的“管理工具”上的性能监控提供的信息,他们才把重点放回存储上。
检查三项内容:
1.Average disk sec/read, 平均每个读花的时间,小于10ms表示性能很好,在10ms~20ms之间表示性能可以接受,如果大于20ms,说明存在I/O问题;
2.Average disk sec/write,平均每个写花的时间,小于10ms表示性能很好,在10ms~20ms之间表示性能可以接受,如果大于20ms,说明存在I/O问题。
3.Average disk queue length,在磁盘等待的IO个数,最好在1.5和2以内,如果高于这个值,一般说明IO子系统有一定的问题,但现在普遍使用RAID或者磁盘虚拟化,如果不详细了解具体的I/O子系统配置,很难从这个计数器判断出问题。
再加上sql上的各大文件的类似数值,所有存储在H盘(网络存储)的文件读写时间都超长,问题应该很清楚了
select DB_NAME(vfs.database_id) as 'database name',
smf.physical_name,
CASE WHEN smf.type = 1 THEN 'LOG_FILE' ELSE 'DATA_FILE' END AS DatabaseFile_Type,
vfs.io_stall_read_ms/vfs.num_of_reads as 'Avg read Trans/ms',
vfs.io_stall_write_ms/vfs.num_of_writes as 'Avg write Trans/ms'
from sys.dm_io_virtual_file_stats(-1,-1) vfs
JOIN sys.master_files AS smf
ON VFS.database_id = smf.database_id
AND VFS.file_id = smf.file_id
where num_of_reads>0 and num_of_writes>0
以下是我学习的网页
http://blog.csdn.net/leamonjxl/article/details/6790832
http://blog.csdn.net/dba_huangzj/article/details/7773744