대기 이벤트별 DB 로드 분석
데이터베이스 로드(Database load) 차트가 병목 현상을 보일 때는 로드가 발생하는 위치를 찾아낼 수 있습니다. 이렇게 하려면 데이터베이스 로드(Database load) 차트 아래의 상위 로드 항목 테이블을 살펴보세요. SQL 쿼리나 사용자 같은 특정 항목을 선택하여 드릴다운을 통해 세부 정보까지 확인할 수 있습니다.
대기 상태와 상위 SQL 쿼리를 기준으로 구분된 DB 부하가 기본 Performance Insights 대시보드 보기입니다. 이 보기는 일반적으로 성능 문제를 가장 정확하게 파악할 수 있는 조합입니다. 대기 상태를 기준으로 구분된 DB 부하는 데이터베이스의 리소스 또는 동시성 병목 현상 유무를 표시합니다. 이 경우 상위 항목 테이블의 [SQL] 부하를 야기하는 쿼리를 표시합니다.
성능 문제를 진단하는 일반 워크플로우는 다음과 같습니다:
-
데이터베이스 로드 차트를 보면서 데이터베이스 로드가 최대 CPU 선을 상회하는지 확인합니다.
-
상회하는 경우가 있으면 데이터베이스 로드(Database load) 차트를 보면서 원인이 되는 대기 상태를 식별합니다.
-
상위 부하 항목 테이블의 [SQL] 탭에서 어떤 쿼리가 대기 상태에 가장 큰 영향을 미치는지 모니터링하면서 부하를 야기하는 요약 쿼리를 식별합니다. DB Load by Wait(대기별 DB 로드) 열을 보면 이러한 요약 쿼리를 식별할 수 있습니다.
-
[SQL] 탭에서 요약 쿼리 중 하나를 선택하여 확장한 다음 구성하고 있는 하위 쿼리를 확인합니다.
예를 들어 다음 대시보드에서 로그 파일 동기화 대기 시간은 대부분의 DB 부하를 차지합니다. LGWR 모든 작업자 그룹 대기 시간도 높습니다. 상위 SQL(Top SQL) 차트는 로그 파일 동기화 대기의 원인인 자주 사용된 COMMIT
문을 보여줍니다. 이 경우 커밋 빈도를 줄이면 DB 부하가 줄어듭니다.