addBatch 와 Descriptor 성능에 대해 질문입니다 0 0 1,214

by Hmm [DB 기타] [2016.04.05 14:00:53]


성능테스트를 한 번 해 보았는데

Descriptor로 배열을 만들어 프로시저에 넘겨 배열 수 만큼 루프를 돌며 인서트 하는 방법과

addBatch로 insert문을 바로 받아 인서트 하는 방식을 비교 해 보았습니다

 

Descriptor는 루프를 도는 수가 많지만 중복 값이 있을 경우 그냥 Exception 처리 하여 넘어가고

 

addBatch는 sql 구문에 매번 중복값을 체크하는 구문( where not exists )을 넣어서 하는데,

제 생각으로는 Descriptor가 루프를 도는 코스트는 많지만 중복 값 발생 시 그냥 넘어가고

addBatch는 매번 셀렉트문을 실행하기 때문에 기존에 데이터가 많이 들어 가 있으면 상대적으로 Batch가 느려질 줄 알았는데

10만건이 넘게 데이터를 넣어 둔 상태에서도 항상 Batch가 더 빠르더라구요, 혹시 Batch 방식이 쿼리를 수행하는 법이 다른가요 ? 아니면 원래 루프를 도는 게 코스트가 압도적으로 많이 들어가는 건가요 ?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입