暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

[译] SQL SERVER – 列出数据库文件延迟的脚本

原创 tinge 2022-07-03
340

原文地址:SQL SERVER – Script to List Database File Latency
原文作者:Pinal Dave

今天,我们将看到一个非常有趣的脚本来列出数据库文件延迟。我经常在我的综合数据库性能健康检查中使用这个脚本。

我的大多数客户都为他们的数据库使用多个驱动器。我经常在最快的驱动器上看到他们的 TempDB 和日志文件,而他们有巨大的 SAN 来保存数据文件。在 SQL Server 性能调优过程中,我们经常会遇到这样一种情况,即我们必须知道哪个文件,特别是哪个文件比其他文件有更多的延迟。

这是列出数据库文件延迟的脚本:

SELECT  DB_NAME(mf.database_id) AS [Database Name], 
        mf.physical_name [Physical Name], 
        num_of_reads, num_of_bytes_read, io_stall_read_ms, 
        num_of_writes, num_of_bytes_written, io_stall_write_ms, 
        io_stall, size_on_disk_bytes
FROM    sys.dm_io_virtual_file_stats(null,null) AS vfs
INNER JOIN sys.master_files AS mf
              ON mf.database_id = vfs.database_id
                 and mf.file_id = vfs.file_id
-- ORDER BY io_stall DESC

上面的脚本将为您提供实例中的所有数据库及其 IO 读取和 IO 写入停顿。列 (io_stall) 包含读取 IO 和写入 IO 的添加。您可以进一步排序此脚本的结果,以便您可以知道哪个文件具有最大的读写 IO。
image.png

一旦知道了具有最大 IO 停顿的文件,您可以执行以下任一操作来提高查询的性能。不要忘记订阅 SQL 六十秒系列。
(地址:https://www.youtube.com/pinaldavesqlauthority)

  • 减少数据库文件的工作量
  • 提高对该数据库文件的查询的整体性能
  • 更换为更快的磁盘以获得更好的 IOPS
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论