101
AI 요약
이 글은 AI가 원문을 분석하여 핵심 내용을 요약한 것입니다.
Oracle child cursor 폭증 문제와 해결 경험
이 게시물은 네이버페이 Plasma 프로젝트에서 Oracle DB의 비동기 복제 전환 과정 중 발생한 성능 저하 문제와 그 해결 과정을 다룹니다.주요 이슈 및 원인 분석
- 비정상적인 child cursor 폭증으로 인해 라이브러리 캐시 잠금, 뮤텍스 경쟁, 커서 대기 증가 발생
- VARCHAR 가변 길이, nullable 필드 바인딩, NUMBER 및 TIMESTAMP 타입 자릿수 변동이 주요 원인
- 특히 칼럼 수가 많은 대형 테이블에서 문제 심화
해결 시도 및 최종 적용 방안
- pstm.setNull(), pstm.setObject(scale) 적용으로 바인딩 타입 고정 시도
- 불필요한 UPDATE 대상 필드 축소 및 TIMESTAMP 밀리초 단위 truncate 적용
- 쿼리 ID를 다르게 인식하도록 주석 추가, 세션 이벤트로 VARCHAR 바인딩 크기 고정 등 다양한 시도 병행
- 최종적으로 child cursor 수 99.8% 감소 및 쿼리 성능 안정화 달성