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