사용자 도구

사이트 도구


java:hibernate:performance

Hibernate Performance Tuning

Hibernate 성능 분석

@org.hibernate.annotations.BatchSize

batch-size 설정은 OneToMany 등의 관계에서 Many쪽 Lazy Proxy 객체를 로딩할때, 한번에 로딩할 갯수를 지정한다. 예를들면 Cat 객체가 Kitten 객체의 리스트를 Lazy로 가지고 있을 때 List<Cat> 을 돌면서 getKittens()를 실행하면 각각의 Cat에 대해 한번씩 쿼리가 날라간다.(n + 1 problem)

하지만 @BatchSize(size = 10) 처럼 해당 관계에 설정을 해 두면, Kitten 객체를 로딩할 때 Cat id 10개씩 in Query로 한번에 로딩한다.

  • hibernate.default_batch_fetch_size=100 프라퍼티 형태로 일괄 지정도 가능하다.
  • OneToOne Eager 에 대해서는 작동하지 않았다.

hibernate.jdbc.fetch_size

TBD

Assert statement count

Index Hint

Stateless Session

  • 1st/2nd level cache 등이 없고 상태가 없는 Session 모드.

참조 문서

java/hibernate/performance.txt · 마지막으로 수정됨: 2017/11/30 22:46 저자 kwon37xi