한국통계정보원 (2024년 ○월 ~ ○월 인턴)
통계표 백업 시, 셀 구성 데이터 약 5,400건을 백업 테이블에 INSERT → 평균 2,176ms 소요
INSERT ALL + MyBatis <foreach> 사용
INSERT ALL + <foreach> 사용이 병목?행 분할이 일어날까? 계산을 해보자.
VARCHAR2(50): 15개 * 최대 바이트(50) = 750 Byte
NUMBER(10,0): 1개 * 10 = 10 Byte
NUMBER(2,0): 1개 * 2 = 2 Byte
VARCHAR2(1): 3개 * 1 = 3 Byte
TIMESTAMP: 2개 * 11 = 22 Byte
총 바이트 = 787 바이트이므로 행 분할이 일어나지는 않는다.
테이블 행의 크기가 Oracle의 경우 블록 크기(보통 8KB)를 초과하면 행 분할이 발생할 수 있어 성능 저하의 원인이 될 수 있다.