A 테이블에는 데이터가 13,597,938 개가 있고,
B 테이블에는 데이터가 14개 데이터가 있습니다.
쿼리는 inner join 을 했습니다.
where 조건문에 들어가는 데이터는 11,282,418 입니다.
아래와 같은 쿼리를 돌리는데 대략 20초 정도가 소요됩니다.
SELECT B.ID, A.Name, B.Maxval, B.Minval, B.regdate FROM A_Tbl A, B_Tbl B
WHERE A.ID = B.ID and B.regdate between '2019-11-24 00:00:00' AND '2020-03-13 23:59:59' and B.ID = 3 ORDER BY B.regdate DESC
OFFSET 1000 ROWS FETCH NEXT 100 ROWS ONLY
A_Tbl 의 ID 와 regdate 는 인덱스 설정을 해놨고, B_Tbl 은 ID 값만 인덱스 적용을 했습니다.
검색 속도를 더 높이고 싶은데....
제가 알고 있는 방법은 조건을 주는 field 에 대해 인덱스 적용하면 쿼리 결과가 빨리 나오는 것으로 알고 있는데요.
혹시 다른 추가해야 하거나 신경써야 할 부분이 더 있을까요?
속도를 개선하고 싶은데, 저의 짧은 지식으로 인해 하지를 못하고 있네요. ㅠㅜ.
할수 있는 방법에 대해 도움을 부탁드립니다.
Comment 1
-
이리
2020.03.16 09:07
실행계획을 봐야 좀 더 알수 있겠지만..
쿼리로 봐서는 조건절이랑 정렬은 다 B테이블인데 인덱스는 A테이블에 걸었다고 하시는것 같습니다.