gpt4 book ai didi

performance - PAGEIOLATCH_SH 与部分驱动器故障有关吗?

转载 作者:行者123 更新时间:2023-12-01 02:49:08 31 4
gpt4 key购买 nike

相关技术:
SQL Server 2008 R2
RAID 5(4 个磁盘)
视窗服务器 2008

作为序言,我们的 RAID 5 阵列有一个磁盘部分出现故障。未检测到故障,但在周末意外断电和 UPS 故障后,驱动器指示灯定期呈琥珀色闪烁(呈琥珀色常亮表示驱动器故障)。停电发生在星期六,我在注意到“PAGEIOLATCH_SH”错误并阅读帖子 What is PAGEIOLATCH_SH wait type in SQL Server? 后于周二发现了曙光。 (除其他外)。我们已经更换了驱动器并让它重建,但我仍然看到错误。

该查询是通过一个 View 对一个大表进行的,该 View 在基础表上有多个索引。我重建了索引,重新保存了 View ,希望有更好的执行路径,并简化了查询。没有什么能解决问题。该查询自 2006 年以来一直没有问题运行,并且在升级到 SQL Server 2008 或 R2 时没有问题,这两者在首次可用时都已应用。

最初的执行计划显示出相当均匀的分布,但现在它显示了第二项“排序(Distinct Sort)”的大多数,大约 30% 的分配在 Index Seek 中。过去的时间在 2 到 10 秒之间,但现在已超过 2 分钟。

在这一点上,我不确定如何隔离导致问题的原因。我假设它要么是我找不到的损坏数据,要么是查询已将自身重新优化为远非最佳的东西,或者 RAID 有问题,没有发出任何灯或警告。

我已经完成了 PAGEIOLATCH_SH 和类似问题通常需要的工作,并且索引不仅看起来正确,而且到目前为止已经工作了多年。我还尽我所能确保驱动器正常工作。我的问题基本上是在这种情况下我该如何诊断问题的根源?

编辑:发现服务器实际上并没有因停电而停机,但它旁边的机架却停机了。不知道为什么驱动器部分故障,但在这一点上似乎与停电是巧合。

最佳答案

你看到很多小PAGEIOLATCH_SH等待,还是几个大的?

select * from sys.dm_os_wait_stats
where wait_type = 'PAGEIOLATCH_SH';

确切的结果是什么(计数、总等待时间、最大等待时间)。

许多小的等待表明查询计划发生了变化。比较(如果可能)查询的逻​​辑读取数量与基线数量将证实这一点(逻辑读取数量的增加)。此外,如果可能,比较计划将有助于隔离问题。

很少有大的等待表明确实存在驱动器问题(等待 IO 时间很长)。 ERRORLOG 中记录的错误 833 将证实这一点 ( SQL Server has encountered ... occurrence(s) of I/O requests taking longer than ... seconds to complete )。

关于performance - PAGEIOLATCH_SH 与部分驱动器故障有关吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6190310/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com