안녕하세요. 쿼리짜던 도중 이상한 현상이 있어서 질문을 올립니다
현재 사용디비는 MSSQL 입니다.
쿼리를 보시면 도움이 되시겠지만 보안상 올릴 수 없음을 양해 부탁 드립니다.
기존 쿼리가 테이블 4개정도 조인해서 쓰던 쿼리였으나 추가로 보여줄 컬럼이 하나 생겨서, 테이블 조인을 하나 더 하고나서 where 절 Date 컬럼에 특정 기간 이상 조건을 주고나서 이상이 생겼습니다.
42일치를 조회하면 10초면 가져오던 쿼리가 43일치를 조회하면 5~10분을 기다려도 조회가 되지 않는 경가 생겼습니다.
데이터 개수 약 100만개 중에서 가져오고 싶은 데이터 (약 30일치)는 10만개 정도 됩니다.
10일, 25일, 25일 등등은 문제 없다가 42일과 43일 하루 차이로 이런 결과가 어떻게 나올 수 있는지 궁굼합니다.
여기서 마지막에 추가된 테이블은 공통적으로 사용되는 컬럼값 정도 가져오는 수준이라 데이터 개수가 총 2만개 정도 밖에 되지 않습니다.
마지막 추가된 테이블의 데이터를 필요한 것만 가져오게 쿼리를 수정하여 당장 해결은 하였으나,
이런 현상이 처음이라 질문을 올리게 되었습니다.
인덱스는 오라클 쓸 때 hint 써서 강제로 태워 조금 시간을 단축하거나 했던 경험은 있지만
그 외 튜닝이나 성능 관련은 잘 모릅니다. DB 성능관련에 문제가 있는건가요? 아니면 단순 쿼리짜는 스킬이 부족하여 무언가를 잘못 하고있는걸까요?
비슷한 경험을 해보신적 있거나 알고 계신분은 답변 부탁 드리겠습니다. |