기존 구조에 문제가 생겨 시스템 개선이 필요했다.
실제 테이블에 증권번호는 필요하지 않았지만 이상하게 증권번호가 pk로 같이 묶여있어, 기존 계약에서 1명이 계약해제후 문제가 생긴것 이다.
따라서 1건이 조회돼야 하는데 해약한 다음 사람의 증권번호가 또 쌓이면서 다건이 조회되는것이었다.
구조를 개선하자니 영향도가 클것 같아 쿼리를 개선하기로 했다. 다행이 개선은 했지만 성능이 2배 정도 나빠졌다. 실행계획을 보니 loop 가 생각이상 발생한것이다. 어떻게 해결할지 고민하다 hash join 사용시 loop 문제를 해결할 수 있다는 걸 알게 되었고 hash join을 적용해주었다. 그 결과 기존 쿼리의 약 13배정도 성능 개선이 가능했다.
'Backend' 카테고리의 다른 글
JUnit 깔끔하게 작성하기 (1) | 2025.02.02 |
---|---|
[DB]시퀀스와 인덱스 (0) | 2025.01.26 |
[JAVA] 비동기처리, @RequestBody 와 @ResponseBody 그리고 @ModelAttribute와의 차이점 (0) | 2025.01.19 |
[JAVA] 디자인 패턴이란 ? 자주 쓰이는 디자인 패턴은 ? (0) | 2025.01.12 |
[JAVA] 컬렉션 Collection 정리 (LIST, SET, MAP) (1) | 2025.01.05 |