SQL Server에서 PAGEIOLATCH_SH 대기 유형이란 무엇입니까?
트랜잭션 도중에 오랜 시간이 걸리는 쿼리가 있습니다. 내가 wait_type
프로세스를 얻을 때 그것은입니다 PAGEIOLATCH_SH
.
이 대기 유형은 무엇을 의미하며 어떻게 해결할 수 있습니까?
에서 MSDN :
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
큰 테이블에서 디스크를 많이 사용하는 작업입니다.
PAGEIOLATCH_SH
대기 유형은 일반적으로 조각화되거나 최적화되지 않은 인덱스의 결과로 나타납니다.
과도한 PAGEIOLATCH_SH
대기 유형의 이유 는 다음과 같습니다.
- I / O 하위 시스템에 문제가 있거나 잘못 구성됨
- 높은 I / O 활동을 생성하는 다른 프로세스에 의해 과부하 된 I / O 하위 시스템
- 잘못된 인덱스 관리
- 논리적 또는 물리적 드라이브 오해
- 네트워크 문제 / 대기 시간
- 메모리 부족
- 동기식 미러링 및 AlwaysOn AG
높은 PAGEIOLATCH_SH
대기 유형 을 시도하고 해결 하려면 다음을 확인할 수 있습니다.
- 과도한
PAGEIOLATCH_SH
대기 유형 의 근본 원인으로 자주 발견 될 수있는 SQL Server, 쿼리 및 인덱스 - I / O 하위 시스템 문제 해결로 이동하기 전에 메모리 부족
AlwaysOn AG에서 높은 안전성 미러링 또는 동기 커밋 가용성의 경우 증가 / 과도 PAGEIOLATCH_SH
를 예상 할 수 있다는 점을 항상 명심하십시오 .
이 항목에 대한 자세한 내용은 과도한 SQL Server PAGEIOLATCH_SH 대기 유형 처리 문서에서 찾을 수 있습니다.
참고 URL : https://stackoverflow.com/questions/620626/what-is-pageiolatch-sh-wait-type-in-sql-server
'IT story' 카테고리의 다른 글
Visual Studio 2008에서 JavaScript / jQuery Intellisense를 어떻게 작동 시키나요? (0) | 2020.09.01 |
---|---|
'입력'요소에 대한 '변경'이벤트와 '입력'이벤트의 차이점 (0) | 2020.09.01 |
Python에서 기본 클래스의 클래스 메서드 호출 (0) | 2020.09.01 |
RabbitMQ 메시지 크기 및 유형 (0) | 2020.09.01 |
GitHub와 함께 사용할 프로젝트 관리 (0) | 2020.09.01 |