현상

: 매일 00:00~02:00에 서비스 관련 테이블인 EPP_SVC 테이블에 대해 배치 작업을 수행한다. 8월 1일 해당 배치 작업이 오전 8시 35분에 완료되었음을 확인하였다.

Top 5 Timed Events 단위 보고서

  • AWR DB 보고서 생석 구간은 8월1일 00:00~08:30
  • 눈에 띄는 문제점은 보이지 않는다.

Wait Events 단위 보고서 : 전체 대기 이벤트 현황

  • 상위 5~9위 이벤트는 버퍼 캐시 사용 관련 대기 이벤트
  • 상위 5~9위 대기 이벤트 발생 시간을 합치면 910,730이므로 전체 이벤트의 14.5% ( 보고서의 DB Time : 7277832초) 을 차지한다. 버퍼 캐시 사용 관련 경합이 성능에 영향을 주었을것으로 판단.

AWR DB 비교 보고서 ( Load Profile 단위 보고서 )

  • 정상 구간(1st) : 7월 31일 00:00~02:00
  • 문제 구간(2nd) : 8월 1일 00:00~08:30
  • 문제 구간에서 전반적인 부하, Block changes, Transactions, Parses, Sorts 값이 큰폭으로 증가하였다.

SQL ordered by Gets (버퍼 캐시 I/O 정보 파악)

  • 문제 구간에서 버퍼 캐시 I/O가 8380% 증가하였고, 수행 속도가 저하된 이유는 I/O 발생량의 증가 때문이다.

Buffer Busy Statistics 단위 보고서 (대기 발생하는 블록 파악)

  • 발생 비율 비교
    • 언두 블록 대기
      • 8월 1일 : 전체 대기 횟수의 91.25%, 전체 대기 시간의 84.23%
      • 7월 30일 : 전체 대기 횟수의 0.24%, 전체 대기 시간의 0.1%
  • 정상 구간은 데이터 블록과 언두 헤더 블록에 대한 이용이 많은 반면, 문제 구간은 언두 블록의 이용이 많았다.
  • 언두 블록의 사용이 많은 것은 배치 작업 수행중에 배치 작업에 이영되는 테이블에 대한 대량의 변경이 발생하였음을 의미한다. ( Load Profile 단위보고서의 Transaction량이 7369.28% 증가한것과 연결된다.)

결론

  • 배치 작업 성능이 저하된 이유는 버퍼 캐시 I/O발생량 증가 및 이로 인한 버퍼 캐시 경합 발생이다.
  • 일간 배치 작업이 사용하는 테이블에 대한 대량 변경 작업으로 인한 언두 데이터 I/O양 증가로 예상된다.
  • 배치 작업에 사용되는 EPP_SVC테이블에 DML작업을 수행하는 SQL을 조사한다.
  • 작업 시간을 조정하여 경합 발생을 최소화한다.