我目前正在查看我的等待统计信息。我遵循了Paul Randal解释的最佳实践,并仔细阅读了他引用的文档。
看看我现在每天一次从所有生产服务器获取的统计切片,我看到 Avg_Wait_S 的值非常高,这意味着总等待秒数除以 WaitCounts 的关系。与所有其他等待类型(最低)相比,等待计数的值非常低,但在我的每台服务器上,这种类型的 AvgWait_S 介于 120 到 2493 秒之间!这看起来像是一个巨大的等待时间。
我读到这无论如何可能是由备份引起的。但我想知道这是否是一种“正常”价值?如何获得有关它的更多详细信息?
这是我的等待统计数据的示例结果集:
WAITTYPE Wait_S Resource_S Signal_S WaitCount Percentage AvgWait_S AvgRes_S AvgSig_S
BACKUPIO 46151.80 45093.07 1058.74 22819151 26.55 0.0020 0.0020 0.0000
CXPACKET 45057.81 27926.59 17131.22 20387211 25.92 0.0022 0.0014 0.0008
BACKUPBUFFER 16658.83 15867.71 791.12 8993341 9.58 0.0019 0.0018 0.0001
PAGEIOLATCH_SH 15326.95 15284.65 42.30 2131848 8.82 0.0072 0.0072 0.0000
ASYNC_IO_COMPLETION 14203.17 14203.17 0.00 9 8.17 1578.1303 1578.1303 0.0000
WRITELOG 8570.20 8377.81 192.39 2136964 4.93 0.0040 0.0039 0.0001
PAGEIOLATCH_EX 7691.32 7673.31 18.01 1777069 4.43 0.0043 0.0043 0.0000
SOS_SCHEDULER_YIELD 4548.90 43.44 4505.47 13294384 2.62 0.0003 0.0000 0.0003
LCK_M_S 3018.76 3018.06 0.71 1704 1.74 1.7716 1.7712 0.0004
ASYNC_NETWORK_IO 2678.83 2147.78 531.05 4372825 1.54 0.0006 0.0005 0.0001
LCK_M_SCH_S 2612.09 2612.08 0.01 37 1.50 70.5971 70.5968 0.0003
如前所述
计数只有 9,即等待只出现了 9 次,在整整一天收集等待统计数据的过程中,这对我来说不会是一个问题。
但是,值得检查其他等待类型
BACKUPIO
和BACKUPBUFFER
.这种等待类型通常会在您通过网络进行备份而 NW 连接不佳或在磁带等(即任何其他极慢的备份系统)上进行备份时出现
我们在其中一台 SQL Server 2005 上进行了类似的等待,以备份大约 200 GB 大小的数据库。由于尺寸很大,而且当时我们没有可用的压缩功能,所以见证了很多等待。我们不得不使用第三方压缩工具,并且看到这些等待类型的数量减少了。所以我相信,如果您开始检查备份,这可能是一个好的开始。确保使用 SQL Server 压缩功能来备份数据库。
但是,为了检查这种等待类型是否导致任何问题,您需要检查备份吞吐量中是否存在任何问题。
与其他网络相比,您可以通过在同一网络上进行本机备份来测试备份并检查其他计数器值。
此外,您可以参考A Cause of high-duration ASYNC_IO_COMPLETION waits for more explanation by Paul on this wait。