하루 수천 수만개 데이터가 쌓이는데 이걸 몇달 치
조건절을 날짜로 두고 검색하게되면 굉장히 많은 시간이 소모 되는 상태입니다.
다른 디비 구성 보니 날짜를 숫자로 변경하여 select 하는 곳이 있던데
date함수 사용과 함수사용x이니 이때 쿼리 코스트가 많이 줄까요?
ex) 2017-11-01 14:34:32 ~ 2017-11-28 14:37:33 vs 20171101142332 ~ 20171128143733
조건 줄 때 컬럼을 가공해서 조건값에 맞추는데... 흔히들 하는 실수입니다.
이렇게 하면 (함수사용에 대한 부담) 에 (인덱스 사용 못하는 부담) 이 더해집니다.
컬럼을 가공해서 조건에 맞추는게 아니라 ===> 조건을 가공해서 컬럼에 맞춰 줘야 합니다.
-- Oracle 날짜 검색 예시 -- -- 변경전(잘못된 예) - WHERE TO_CHAR(dt, 'yyyymmdd') = :v_dt -- 변경후(바른 예) - WHERE dt >= TO_DATE(:v_dt, 'yyyymmdd') AND dt < TO_DATE(:v_dt, 'yyyymmdd') + 1