현재 1500만건 정도의 데이타를 가진 테이블에서 1만건 정도의 데이타를 카운트 해오고 있습니다.
sql 은
SELECT userid, box_id
,NVL (COUNT (*), 0) msg_count
,NVL (SUM (open_yn), 0) unopen_count
,NVL (SUM (msg_size), 0) used_size
FROM tdata y WHERE userid = :userid GROUP BY userid, box_id;
이런 상황인데 실행시키면 10초이상 시간이 걸리고 있습니다.
tdata_idx1의 컬럼은 userid, box_id, regdate 입니다. 실행계획은 아래와 같습니다.
Plan
SELECT STATEMENT CHOOSE Cost: 1,577 Bytes: 1,170 Cardinality: 39
3 SORT GROUP BY NOSORT Cost: 1,577 Bytes: 1,170 Cardinality: 39
2 TABLE ACCESS BY INDEX ROWID user.tdata Cost: 1,577 Bytes: 47,520 Cardinality: 1,584
1 INDEX RANGE SCAN NON-UNIQUE user.tdata_idx1 Cost: 19 Cardinality: 1,584
어떤 부분을 찾아봐야할지 잘 감이 오지 않습니다. 조언 좀 부탁드립니다.
|