인프런 커뮤니티 질문&답변

양준호님의 프로필 이미지

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

영속성 컨텍스트 2

쓰기지연 관련.

해결된 질문

작성

·

274

0

안녕하세요. 강사님!

[1] commit 하기전에는 1차캐쉬 영역에 보관(?) 되었다가 commit 날릴때 db에 insert 되는건 이해했는데요..

[2] 뒤에 설명(16:20)부분에  hibernate.jdbc.batch_size 옵션을 켜주면 사이즈만큼 모아서 한방에 쿼리를 날린다. 

[1]설명 하실때 해당 옵션이 비활성 되어 있음에도, commit 할때 insert 되었는데 [2] 옵션과 commit과 차이가 잘 이해가 안갑니다.... 

답변 2

4

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요 양준호님^^

해당옵션과 무관하게 INSERT 쿼리는 트랜잭션 커밋 시점에 데이터베이스에 반영됩니다. (데이터베이스에 INSERT 쿼리가 날라갑니다.)

이 옵션을 키면 

INSERT MEMBER(A)

INSERT MEMBER(B)

이렇게 2개의 INSERT를 모아서 네트워크 통신 한번에 보내는 최적화가 진행됩니다^^

그리고 이 옵션을 키지 않으면 네트워크 통신이 각 INSERT SQL마다 각각 총 2번 일어납니다^^

그런데 실무에서 이 옵션을 키는 일은 정말 무거운 배치 업무를 제외하고는 거의 없습니다.

감사합니다.

0

양준호님의 프로필 이미지
양준호
질문자

답변감사합니다~^^ 좋은주말되세요