De MSDN:
PAGEIOLATCH_SH
Ocurre cuando una tarea está esperando en un pestillo para un búfer que está en una petición 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 la consulta es la siguiente:
Select * from <table> where <col1> = <value> order by <PrimaryKey>
, compruebe que tiene un índice compuesto en (col1, col_primary_key)
.
Si no tiene uno, entonces usted necesita, ya sea que se elija un total si el PRIMARY KEY
, o una SORT
si se elige un índice en col1
.
Ambos son muy I/O
disco que consumen las operaciones en tablas grandes.
Es una simple consulta real. Seleccionar * de
¿Puede sugerir algunos recursos para el aprendizaje de la comprensión que tiene de lo que es intensivo del disco, lo que requiere un recorrido de índice completo, lo que requiere una especie etc –
@GregB: si ya tiene un conocimiento básico de SQL, se podía leer los libros de Joe Celko (todos ellos, pero sobre todo 'SQL para Smarties' y' Pensando en Sets') y mi blog, por supuesto :) – Quassnoi
PAGEIOLATCH_SH
tipo de espera por lo general surge como el resultado del índice fragmentado o no optimizado.menudo razones de excesiva tipo
subsistemaPAGEIOLATCH_SH
espera son:Con el fin de tratar de resolver que tiene una alta
PAGEIOLATCH_SH
tipo de espera, se puede comprobar:PAGEIOLATCH_SH
excesivossiempre tener en cuenta que en caso de creación de reflejo de alta seguridad o síncrono de cometer disponibilidad en AlwaysOn AG, aumento/
PAGEIOLATCH_SH
se puede esperar excesiva.se pueden encontrar más detalles sobre este tema en el artículo de Handling excessive SQL Server PAGEIOLATCH_SH wait types
Fuente
2017-11-10 16:07:46
Cuestiones relacionadas