Respostas:
Da documentação da Microsoft :
PAGEIOLATCH_SH
Ocorre quando uma tarefa está esperando em uma trava por um buffer que está em uma
I/O
solicitação. A solicitação de trava está no modo Compartilhado. Esperas longas podem indicar problemas com o subsistema de disco.
Na prática, isso quase sempre acontece devido a grandes varreduras em grandes tabelas. Quase nunca acontece em consultas que usam índices de forma eficiente.
Se sua consulta for assim:
Select * from <table> where <col1> = <value> order by <PrimaryKey>
, verifique se você tem um índice composto ativado (col1, col_primary_key)
.
Se você não tiver um, precisará de um completo INDEX SCAN
se o PRIMARY KEY
for escolhido ou de um SORT
se um índice col1
for escolhido.
Ambos são I/O
operações que consomem muito disco em grandes tabelas.
SQL for Smarties
e Thinking in Sets
) e meu blog, é claro :)
PAGEIOLATCH_SH
O tipo de espera geralmente surge como resultado de um índice fragmentado ou não otimizado.
Muitas vezes, os motivos para o PAGEIOLATCH_SH
tipo de espera excessiva são:
Para tentar resolver o PAGEIOLATCH_SH
tipo de espera alta , você pode verificar:
PAGEIOLATCH_SH
tipos de espera excessivosSempre tenha em mente que no caso de espelhamento de alta segurança ou disponibilidade de confirmação síncrona no AlwaysOn AG, PAGEIOLATCH_SH
pode-se esperar aumento / excessivo .
Você pode encontrar mais detalhes sobre este tópico no artigo Manipulando tipos de espera PAGEIOLATCH_SH excessivos do SQL Server