본문 바로가기

JPA 성능개선2

(JPA) JPA 성능개선이란? 성능개선 적용기 (fetch join/BatchSize) JPA 성능개선 적용기 fetch join BatchSize 이전글: jpa 성능개선 목록 ↓ https://lion-king.tistory.com/entry/JPA-Performance-Improvement-list 마이페이지 개편 중 구매내역 api를 호출해보니 응답속도가 매우 느린 이슈가 있었습니다. (서비스 메소드만 테스트 하였는데도 1분이상..) 테스트 계정이어서 구매내역이 많은 탓도 있었겠지만 개선이 필요할 것 같아 실행되는 쿼리를 확인해보니 엄청난 수의 select 문이 실행되는 것을 확인할 수 있었습니다. 업무시간 외에 이것저것 테스트를 하였고 fetch join과 BatchSize를 사용해서 성능개선 되는 과정을 기록에 남깁니다. (개선 전 77초 -> 개선 후 2초) 기존 Entity .. 2020. 3. 9.
(JPA) JPA 성능개선이란? 성능개선 목록 (N+1문제/read-only/Non-Transactional..) JPA 성능개선 목록 1. N+1 문제 개선 JPA 사용시 성능상 가장 조심해야하는 것이 N+1 문제이다. N+1 문제는 연관관계 설정이 되어있는 Entity 조회시 연관된 다른 Entity를 가져오기 위해 조회한 수 만큼 다시 SQL문이 수행되는 문제를 뜻한다. 예시) : select 문이 여러번 사용되는 것이 보이시나요? 위 쿼리는 한 Entity를 조회했는데 연관된 Entity들을 가져오려고 생성되는 쿼리들 입니다. 성능이 많이 느렸습니다 - 해결방법 a. (fetch = FetchType.EAGER) :FetchType을 EAGER 로 변경 (즉시 로딩 전략) : Entity 조회시점에 Mapping된 Entity를 join 문으로 함께 가져온다 b. JPQL fetch join 사용 (JPQL의.. 2020. 3. 7.