当前位置:  开发笔记 > 数据库 > 正文

什么是SQL Server中的PAGEIOLATCH_SH等待类型?

如何解决《什么是SQLServer中的PAGEIOLATCH_SH等待类型?》经验,为你挑选了2个好方法。

我有一个在交易过程中需要很长时间的查询.当我得到wait_type它的过程时PAGEIOLATCH_SH.

这种等待类型是什么意思,如何解决?



1> Quassnoi..:

来自MSDN:

PAGEIOLATCH_SH

当任务正在等待I/O请求中的缓冲区的锁存器时发生.锁存请求处于共享模式.长时间等待可能表示磁盘子系统出现问题.

在实践中,这几乎总是发生在大桌子上的大扫描.在有效使用索引的查询中几乎不会发生这种情况.

如果您的查询是这样的:

Select * from  where  =  order by 


,检查您是否有复合索引(col1, col_primary_key).

如果你没有,那么你需要一个完整的,INDEX SCAN如果PRIMARY KEY选择了,或者SORT如果选择了一个索引col1.

它们都是I/O大型表上非常耗费磁盘的操作.


另一个可以拥有此命令的SQL命令是索引重建.
这确实表明我们的磁盘子系统出错.RAID磁盘在未触发监控系统的情况下发生故障.检查事件日志发现SMART确实标记了驱动器坏了.

2> 小智..:

PAGEIOLATCH_SH 等待类型通常由于碎片或未优化的索引而出现.

过度PAGEIOLATCH_SH等待类型的原因通常是:

I/O子系统出现问题或配置错误

由产生高I/O活动的其他进程重载I/O子系统

糟糕的索引管理

逻辑或物理驱动器误解

网络问题/延迟

记忆压力

同步镜像和AlwaysOn AG

为了尝试解决具有高PAGEIOLATCH_SH等待类型的问题,您可以检查:

SQL Server,查询和索引,通常这可能是过度PAGEIOLATCH_SH等待类型的根本原因

在进入任何I/O子系统故障排除之前的内存压力

始终牢记,如果在AlwaysOn AG中具有高安全性镜像或同步提交可用性,PAGEIOLATCH_SH则可以预期增加/过多.

您可以在处理过多的SQL Server PAGEIOLATCH_SH等待类型一文中找到有关此主题的更多详细信息

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有