현상
: 매일 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을 조사한다.
- 작업 시간을 조정하여 경합 발생을 최소화한다.