답변:
에서 Microsoft 설명서 :
PAGEIOLATCH_SH
태스크가
I/O
요청 에있는 버퍼를 래치에서 대기하는 경우에 발생합니다 . 래치 요청이 공유 모드에 있습니다. 긴 대기는 디스크 하위 시스템에 문제가 있음을 나타낼 수 있습니다.
실제로 이것은 큰 테이블에 대한 큰 스캔으로 인해 거의 항상 발생합니다. 인덱스를 효율적으로 사용하는 쿼리에서는 거의 발생하지 않습니다.
쿼리가 다음과 같은 경우 :
Select * from <table> where <col1> = <value> order by <PrimaryKey>
,에 복합 색인이 있는지 확인하십시오 (col1, col_primary_key)
.
계정이없는 경우에, 당신은 하나 전체가 필요합니다 INDEX SCAN
(가) 경우 PRIMARY KEY
선택, 또는 SORT
인덱스에있는 경우 것이 col1
선택됩니다.
둘 다 I/O
큰 테이블에서 디스크를 많이 사용하는 작업입니다.
SQL for Smarties
와 Thinking in Sets
)과 :) 물론 내 블로그
PAGEIOLATCH_SH
대기 유형은 일반적으로 조각화되거나 최적화되지 않은 인덱스의 결과로 나타납니다.
과도한 PAGEIOLATCH_SH
대기 유형의 이유 는 다음과 같습니다.
높은 PAGEIOLATCH_SH
대기 유형 을 시도하고 해결 하려면 다음을 확인할 수 있습니다.
PAGEIOLATCH_SH
대기 유형 의 근본 원인으로 자주 발견 될 수있는 SQL Server, 쿼리 및 인덱스AlwaysOn AG에서 높은 안전성 미러링 또는 동기 커밋 가용성의 경우 증가 / 과도 PAGEIOLATCH_SH
를 예상 할 수 있다는 점을 항상 명심하십시오 .
이 항목에 대한 자세한 내용은 과도한 SQL Server PAGEIOLATCH_SH 대기 유형 처리 문서에서 찾을 수 있습니다.