Respuestas:
De la documentación de Microsoft :
PAGEIOLATCH_SH
Ocurre cuando una tarea está esperando en un pestillo para un búfer que está en una
I/O
solicitud. La solicitud de pestillo está en modo compartido. Las esperas largas pueden indicar problemas con el subsistema de disco.
En la práctica, esto casi siempre sucede debido a grandes escaneos en tablas grandes. Casi nunca ocurre en consultas que usan índices de manera eficiente.
Si su consulta es así:
Select * from <table> where <col1> = <value> order by <PrimaryKey>
, compruebe que tiene un índice compuesto activado (col1, col_primary_key)
.
Si no tiene uno, necesitará un completo INDEX SCAN
si PRIMARY KEY
se elige, o un SORT
si col1
se elige un índice .
Ambos son I/O
operaciones que consumen mucho disco en tablas grandes.
SQL for Smarties
y Thinking in Sets
) y mi blog, por supuesto :)
PAGEIOLATCH_SH
el tipo de espera suele aparecer como resultado de un índice fragmentado o no optimizado.
A menudo, las razones del PAGEIOLATCH_SH
tipo de espera excesiva son:
Para intentar resolver el PAGEIOLATCH_SH
tipo de espera alta , puede verificar:
PAGEIOLATCH_SH
tipos de espera excesivosSiempre tenga en cuenta que en caso de alta seguridad Mirroring o disponibilidad de compromiso síncrono en AlwaysOn AG, PAGEIOLATCH_SH
se puede esperar un aumento / exceso .
Puede encontrar más detalles sobre este tema en el artículo Manejo de tipos de espera excesivos de SQL Server PAGEIOLATCH_SH