공통 작업량

100만 건을 처리하더라도, 운영 부담은 트랜잭션 경계에서 갈립니다.

같은 데이터를 반영해도 한 번에 오래 묶으면 실패 범위와 잠금 시간이 커집니다. 대량 배치는 처리량보다 복구 가능한 단위로 쪼개는 것이 핵심입니다.

비교 축
하나의 긴 트랜잭션
짧은 배치 트랜잭션
경계
잘못된 패턴
BEGIN
100만 건 처리
COMMIT
커밋 전까지 모든 변경이 하나의 실패 덩어리로 묶입니다.
권장 패턴
BEGIN
1000건 처리
COMMIT
... 반복
배치마다 정리되므로 긴 점유를 작은 단위로 끊을 수 있습니다.
실패 시
57만 건에서 오류가 나도 처음부터 전체 롤백
실패 지점이 뒤로 갈수록 되돌리는 비용이 그대로 커집니다.
57번째 배치에서 오류가 나면 그 1000건만 롤백
앞서 커밋된 배치는 유지되고, 재시작 범위도 현재 배치로 제한됩니다.
운영 영향
언두 누적, 잠금 장기화, 병목 증가
오래 열린 트랜잭션은 데이터 정합성뿐 아니라 동시 처리 성능도 압박합니다.
언두를 작게 유지하고 잠금을 빨리 해제
실패 비용과 점유 시간을 함께 줄여 운영 중 배치 작업에 더 안전합니다.
원칙: 대량 배치는 한 번에 끝내는 것보다, 실패해도 바로 복구할 수 있는 작은 트랜잭션으로 나누는 편이 안전합니다.
롤백 범위 축소 잠금 점유 시간 단축 재시작 지점 명확