안녕하세요. 약 80만건의 데이터를 처리해서 unload to 로 파일로 남기려고 하는데 처리 시간이 너무 오래 걸리네요 ㅡ.ㅡ
Select
Date,
Time,
TIme_Intrv,
Location,
ID,
Dept,
Mobile,
SUM(A),
SUM(B),
SUM(C),
.
.
.
FROM TABLE A
WHERE Date = 'TODAY - 1'
AND SUBSTR(ID,1,1) = '1'
AND TIME BETWEEN 0000 AND 2330
AND DEPT IN (1,2,3,4,5)
GROUP BY DATE, TIME, TIME_INTRV, LOCATION, ID, DEPT, MOBILE
GROUP BY가 묶인 컬럼이 너무 많아서 그런거 같은데..
혹시 조금 더 시간을 줄일 수 있는 방법이 있을까요.
Index 타는 컬럼은 모두 필터를 걸어 놨는데... estimated cost가 더 이상 줄지를 않네요.
단일 테이블 select 입니다.
참고로 인덱스 정보는 아래와 같습니다.
Index_name Owner Type/Clstr Access_Method Columns
hag_ndx1 root dupls/No btree date
location
id
dept
hag_ndx2 root dupls/No btree date
acd
dept
hag_ndx3 root dupls/No btree location
date
TIme_Intrv
그리고 혹시 추가로 unload to 로 데이터 파일로 떨굴때 Sum 함수가 쓰인 데이터는 마지막에 소수점이 찍혀나오네요.
ROUND, TRUNC 모두 써봐도 무조건 나옵니다. ㅡ.ㅡ;; 이게 파일 사이즈로도 잡아 먹어서.. 결국 시간도 더 걸리는 것 같아요.
CHAR로 형변환을 하면 괜찮아 지지만 또 쿼리 속도가 늘어 납니다.
이 부분을 처리할 수 있는 방법도 있을지요? |