사용자 도구

사이트 도구


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 객체를 로딩할때, 한번에 로딩할 갯수를 지정한다.
줄 56: 줄 57:
   * ''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