파티션 테이블의 푸르닝을 통해 한 파티션에 1억건 정도 있는 테이블 조회시 조건절로 약 4천만건이 나옵니다.
컬럼은 전체 100개 중에 30개 정도를 select하는데 4개 숫자 컬럼을 nvl(sum) 처리하여 group by 후 일자컬럼으로 desc에 전체 조회 count하는데 속도가 3~4분정도 걸리네요
로컬인덱스도 일자에 설정을 해보고 group by 후 order by 를 나중에 따로 해도 속도는 거의 차이가 없어
고수님들께 조언을 구하고자 합니다.
ex )
select count(1) over() as tot_cnt
, col1
, col2
, col3
, col4
, col5
, col6 -- 일자(varchar2(8))
, col7
, nvl(sum(col8),0) as num1 -- null 허용이라 nvl처리
, nvl(sum(col9),0) as num2 -- null 허용이라 nvl처리
, nvl(sum(col10),0) as num3 -- null 허용이라 nvl처리
, col11
from table a
where col6 between '20230101' and '20231231'
group by col1, col2, col3, col4, col5, col6, col7, col11
order by col6 desc
;
며칠을 두고 고민하면서 작성하고 수정해 봤는데 속도차이가 없네요...ㅠ.ㅠ
|