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

【译】SQL SERVER – 用于列出数据库文件延迟的脚本

原创 刺史武都 2022-06-14
545

原文链接:https://blog.sqlauthority.com/2022/06/07/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。

3.png

知道 IO 最大停顿的文件后,可以执行以下任一操作来提高查询的性能。 不要忘记订阅 SQL 在 Sixty Seconds 系列中。

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

评论