1. SQL 쿼리 힌트 사용
- JPA는 데이터베이스 SQL 힌트 기능을 미제공 => 하이버네이트 직접 사용
- 하이버네이트 쿼리가 제공하는 addQueryHint() 메소드 사용
2. 트랜잭션을 지원하는 쓰기 지연
- SQL 실행시마다 네트워크 호출할 경우 많은 비용이 소모 => SQL을 모아서 한 번에 호출
- JDBC가 제공하는 SQL 배치 기능 사용
- 하지만, 이 기능을 사용하려면 코드의 많은 부분 수정이 필요 => 수백 수천 건 이상의 데이터를 변경해야하는 특수한 상황에 SQL 배치 기능 적용
- 위와 같이 batch_size 가 50인 경우, 최대 50건까지 모았다가 배치 실행
- 단, 같은 SQL인 경우에만 유효함
- 중간에 다른 처리가 있을 경우 다시 SQL 배치가 실행됨