좌변가공 쿼리..? 이런건 어떻게 튜닝을.? 0 1 777

by 김쿠쿠 [2018.03.26 15:39:47]


select
    *
from
    account
where
    to_char((from_tz(cast(sysdate as timestamp), 'GMT') at time zone substr(time_zone, 4)), 'yyyymmdd') * 10000 + substr(work_starting_time, 1, 4) between to_char(systimestamp, 'yyyymmddhh24') * 10000 and to_char(systimestamp + interval '1' hour, 'yyyymmddhh24') * 10000;

요런 쿼리가 있는데요,

좌변이 해당 테이블의 time_zone, work_starting_time을  가공한 값으로 조회를 하게 되는데..

별로 좋은 쿼리가 아닌거 같아서 이럴때는 어떤식으로 조정하면 좋을까요?

by 마농 [2018.03.27 08:42:35]

조건절 맞는건가요? 이상한데요? 틀린거 같은데요?
좌변은 201803270900 형태의 12자리 수이고
우변은 20180327080000 형태의 14자리 수가 나올텐데요?
우변에 * 10000 이 아닌 * 100 을 해야 조건이 유효할 것 같네요?
우선 두개 컬럼으로 결합인덱스를 만든다면? 인덱스 풀스캔은 되겠지만...
인덱스 레인지 스캔을 유도할 방법은 생각이 안나네요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입