문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 다음 판 양쪽 다음 판 | ||
java:hibernate:performance [2018/09/19 21:44] kwon37xi [Hibernate Performance Tuning] |
java:hibernate:performance [2019/02/20 09:00] kwon37xi |
||
---|---|---|---|
줄 5: | 줄 5: | ||
* [[java: | * [[java: | ||
* [[java: | * [[java: | ||
+ | |||
+ | |||
===== Hibernate 성능 분석 ===== | ===== Hibernate 성능 분석 ===== | ||
* [[java: | * [[java: | ||
+ | |||
+ | ==== Join Fetch ==== | ||
+ | * JPQL 에서 '' | ||
===== @org.hibernate.annotations.BatchSize ===== | ===== @org.hibernate.annotations.BatchSize ===== | ||
줄 14: | 줄 19: | ||
하지만 '' | 하지만 '' | ||
- | * '' | + | * '' |
* OneToOne Eager 에 대해서는 작동하지 않았다. | * OneToOne Eager 에 대해서는 작동하지 않았다. | ||
+ | * 지나치게 큰 값을 설정하지 말아야 한다. 30개 정도가 적당해 보이며, 쿼리 실행시간이 수십 밀리세컨드 이내로 끝날 수준으로 정하는게 좋다. | ||
===== hibernate.jdbc.fetch_size ===== | ===== hibernate.jdbc.fetch_size ===== | ||
줄 24: | 줄 30: | ||
===== hibernate.jdbc.batch_size ===== | ===== hibernate.jdbc.batch_size ===== | ||
TBD | TBD | ||
+ | |||
+ | ===== autoCommit 을 꺼서 성능 향상시키기 ===== | ||
+ | * Connection Pool 의 '' | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * 커넥션 풀 설정의 '' | ||
+ | * '' | ||
+ | * [[springframework: | ||
+ | * [[https:// | ||
+ | * '' | ||
+ | if (!vendorProperties.containsKey(PROVIDER_DISABLES_AUTOCOMMIT)) { | ||
+ | configureProviderDisablesAutocommit(vendorProperties); | ||
+ | } | ||
+ | |||
+ | ... | ||
+ | |||
+ | if (isDataSourceAutoCommitDisabled() && !isJta()) { | ||
+ | vendorProperties.put(PROVIDER_DISABLES_AUTOCOMMIT, | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | > in Hibernate 5.2.10, we introduced the hibernate.connection.provider_disables_autocommit configuration property which tells Hibernate that the underlying JDBC Connections already disabled the auto-commit mode. | ||
+ | |||
===== Assert statement count ===== | ===== Assert statement count ===== | ||
줄 43: | 줄 72: | ||
* [[http:// | * [[http:// | ||
* [[https:// | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// |