MS SQL Server分析数据库的I/O性能

时间:2022-10-04 06:37:59

原文链接

摘要: 系统有的时候响应会明显很慢,有的时候可以是因为访问人数增加导致,有的时候可能因为数据库的磁盘I/O访问次数频繁导致。MS SQL Server提供了一些动态管理视图和函数供我们分析磁盘I/O性能。   1、sys.

系统有的时候响应会明显很慢,有的时候可以是因为访问人数增加导致,有的时候可能因为数据库的磁盘I/O访问次数频繁导致。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_nameFROM    sys.dm_io_virtual_file_stats(DB_ID('master'), 1) AS vfsJOIN sys.master_files AS mf ON vfs.database_id = mf.database_idAND vfs.FILE_ID = mf.FILE_IDORDER BY avg_total_latency DESC
  如果sys.dm_io_virtual_file_stats(null,null)那么会显示所有默认数据库和曾经附加过的数据库的信息,这里只想看master数据库的I/O信息,对数据库上执行后结果分析如下:MS SQL Server分析数据库的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代替。

最新内容请见作者的GitHub页:http://qaseven.github.io/
如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:yqgroup@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。 MS SQL Server分析数据库的I/O性能
原文链接