Back End/Spring Data JPA
[Spring JPA] Dirty Check 는 무엇이고, 그로 인한 성능적인 손해는 무엇일까?
DevPing9_
2021. 11. 2. 20:10
# DirtyCheck
- JPA 영속성 관리자가 Session(트랜잭션) 이 종료되는 시점에 영속성과 DB 의 불일치를 자동으로 일치화 시켜주기 위해 checking 하는 것
- 대용량데이터를 읽고, 가지고 놀다가 DB에 반영안해야지 😏 하고 있다가 큰 코 다침...
- 그냥 읽기만하고 세션을 종료해도 dirtycheck를 하기 때문에 함수가 n번 호출되어 성능적인 손해가 발생


# 그럼 어떻게 해결하지...?
- @Transactional(readOnly=true) 로 지정
- autoFlush의 flag가 false가 된다. (코드위치를 못찾겠음... ㅠㅠ)

728x90