Database의 책임
Intro 스마트해썹 공정 프로그램을 개발하다가 보고서 조회 속도가 너무 느리다는 걸 발견했다.
조회 조건을 해와서 그런가 싶었지만, 단순히 조회하려는 내용 자체를 가져오는데 오래 걸렸다.
로 분석한 결과 다음과 같았다. 쿼리 부분이 포함되어 있어서 중간은 생략했다. 여기서 가장 중요하게 봐야할 부분은 이다.
이렇게 때문에 조회 속도가 나오지 않았던 것이다. 그래서 나는 서브쿼리를 조인으로 풀어가고, 필요없는 컬럼은 조회하지 않았다.
또한 이미 걸려있는 인덱스를 적절히 활용했다.
내가 쿼리를 수정하고 난 다음 성능을 분석한 결과는 다음과 같다. 부분을 보면 어떤가?
119.416 ms 정도 소요됐다.
단순히 나누기 연산을 해봐도 17배 정도 빨라진 셈이다.
여러번 성능 테스트를 해본 결과 약 20배 정도 빨라졌다는 것을 알 수 있었다. 그러면서 의심이 들었다… 내가 잘 짰나..?
SQL을 보니 연산 작업으로 인해 코드가 길고 복잡했다.
이렇게 가져가면 너무나 …