pageiolatch_sh pageiolatch_ex cxpacket sql-server tsql optimization

sql-server - cxpacket - pageiolatch_ex



¿Qué es el tipo de espera PAGEIOLATCH_SH en SQL Server? (2)

Desde MSDN :

PAGEIOLATCH_SH

Se produce cuando una tarea está esperando en un bloqueo para un búfer que está en una solicitud de I/O La solicitud de bloqueo está en modo compartido. Largas esperas pueden indicar problemas con el subsistema de disco.

En la práctica, esto casi siempre ocurre debido a escaneos grandes en mesas grandes. Casi nunca ocurre en consultas que utilizan índices de manera eficiente.

Si su consulta es así:

Select * from <table> where <col1> = <value> order by <PrimaryKey>

, compruebe que tiene un índice compuesto en (col1, col_primary_key) .

Si no tiene uno, necesitará una INDEX SCAN completa si se elige la PRIMARY KEY , o una SORT si se elige un índice en col1 .

Ambas son operaciones de consumo de I/O muy disco en tablas grandes.

Tengo una consulta que tarda mucho tiempo en el medio de una transacción. Cuando obtengo el wait_type del proceso, es PAGEIOLATCH_SH .

¿Qué significa este tipo de espera y cómo puede resolverse?


PAGEIOLATCH_SH tipo de espera PAGEIOLATCH_SH generalmente aparece como resultado de un índice fragmentado o no optimizado.

A menudo, los motivos del tipo de espera PAGEIOLATCH_SH excesivo son:

  • El subsistema de E / S tiene un problema o está mal configurado
  • Subsistema de E / S sobrecargado por otros procesos que están produciendo la alta actividad de E / S
  • Mala gestión de índice
  • Error de conducción lógica o física
  • Problemas de red / latencia
  • Presión de la memoria
  • Synchronous Mirroring y AlwaysOn AG

Para intentar resolver el tipo de espera alto de PAGEIOLATCH_SH , puede verificar:

  • SQL Server, consultas e índices, como muy a menudo esto podría encontrarse como una causa raíz de los tipos de espera PAGEIOLATCH_SH excesivos
  • Para la presión de la memoria antes de saltar a cualquier resolución de problemas del subsistema de E / S

Siempre tenga en cuenta que en caso de alta seguridad Mirroring o synchron-commit-disponibilidad en AlwaysOn AG, se puede esperar PAGEIOLATCH_SH incrementado / excesivo.

Puede encontrar más detalles sobre este tema en el artículo Cómo manejar los tipos de espera excesivos de SQL Server PAGEIOLATCH_SH