Oracle/[oracle] Error
[유틸리티 에러] IMP-00032: SQL문이 버퍼 길이를 초과했습니다.
kr98gyeongim
2022. 3. 25. 10:41
■에러
IMP-00032: SQL문이 버퍼 길이를 초과했습니다.
■현상
이 에러는 현지 서버에서 데이터를 Import를 하기 위해 사내 환경에서 실행했을 때 발생한 에러이다.
미리 작성한 배치파일을 가지고 imp.exe를 실행한 결과
import시 IMP-00032: SQL statement exceeded buffer length가 발생했다.
■원인
IMP-00032 오류는 테이블을 조작하는 DDL, DML이 사용하는 버퍼가 부족하기 때문에 발생한다.
컬럼수가 많은 큰 사이즈의 데이터(LONG/LOB 등) 등을 삽입하고 있는 것이 예상된다.
Import 유틸리티(utility)의 디폴트 버퍼 사이즈는 XXXX 바이트이기 때문에 디폴트 상태로는 버퍼 크기가 작다.
■대응
Import 유틸리티(utility)에서 사용할 수 있는 버퍼 크기를 늘린다.
또한 버퍼 크기의 확장은 import의 퍼포먼스도 향상한다.
최저 1048576(1MB) 이상 1MB 단위로 증가시켜 가는 모습을 보면서 최적치를 찾는다.
REDO 로그버퍼의 크기를 참고하면 좋다.
※ 일정 이상 크게 설정을 하더라도 퍼포먼스는 향상되지 않고, 메모리의 낭비가 된다.
# IMP BUFFER=1048576 ~