사용자 도구

사이트 도구


java:hibernate:performance

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
java:hibernate:performance [2022/12/07 14:05]
kwon37xi [hibernate.query.in_clause_parameter_padding=true]
java:hibernate:performance [2023/07/03 14:54]
kwon37xi [Join Fetch]
줄 22: 줄 22:
   * 따라서 ''@BatchSize''나 ''default_batch_size'' 를 지정하고, join fetch 보다는 ''Hibernate.initialize(lazy로딩객체)'' 형태를 사용하는게 더 나을 수 있다. 이 경우에는 1+1 번 조회가 나가는 편이다(batch size에 따라 달라짐. batch size 단위로 조회 반복).   * 따라서 ''@BatchSize''나 ''default_batch_size'' 를 지정하고, join fetch 보다는 ''Hibernate.initialize(lazy로딩객체)'' 형태를 사용하는게 더 나을 수 있다. 이 경우에는 1+1 번 조회가 나가는 편이다(batch size에 따라 달라짐. batch size 단위로 조회 반복).
   * see [[java:hibernate:gotchas|Hibernate/JPA Gotcha]]   * see [[java:hibernate:gotchas|Hibernate/JPA Gotcha]]
 +  * [[java:hibernate:configuration|Hibernate Configurations]] - ''hibernate.query.fail_on_pagination_over_collection_fetch=true'' 옵션을 켜서 미리 에러를 내고 확인해서 고쳐두는게 좋다.
 ===== @org.hibernate.annotations.BatchSize ===== ===== @org.hibernate.annotations.BatchSize =====
 ''batch-size'' 설정은 **OneToMany** 등의 관계에서 Many쪽 Lazy Proxy 객체를 로딩할때, 한번에 로딩할 갯수를 지정한다. ''batch-size'' 설정은 **OneToMany** 등의 관계에서 Many쪽 Lazy Proxy 객체를 로딩할때, 한번에 로딩할 갯수를 지정한다.
줄 54: 줄 55:
 in 에 들어가는 값이 128 을 초과하지 않게 파티셔닝하고 관리하는게 좋다. ''@BatchSize'', ''hibernate.default_batch_fetch_size'' 도 참조. in 에 들어가는 값이 128 을 초과하지 않게 파티셔닝하고 관리하는게 좋다. ''@BatchSize'', ''hibernate.default_batch_fetch_size'' 도 참조.
  
- * ''eq_range_index_dive_limit'' : default 200 개 초과시 index 안탐. +  * ''eq_range_index_dive_limit'' : default 200 개 초과시 index 안탐. 
- * ''range_optimizer_max_mem_size'' : default 8mb 초과시 index 안탐.+  * ''range_optimizer_max_mem_size'' : default 8mb 초과시 index 안탐. 
 + 
 +참조 : [[https://jojoldu.tistory.com/565|MySQL IN절을 통한 성능 개선 방법]]
 </note> </note>
 ===== Hibernate Query Plan Cache ===== ===== Hibernate Query Plan Cache =====
java/hibernate/performance.txt · 마지막으로 수정됨: 2024/03/04 12:47 저자 kwon37xi