한때 모델링을 겉핡기로 잠깐 배워본 학생입니다.
두개의 테이블이 있습니다... A -< B 로 일대 다 관계 입니다.
하루에 insert건은 대략 적게는 2백만건에 많게는 7~8백만 건이라고 했을경우
받는 패킷을 A테이블에 insert 시키고 값에따라 B테이블에 FK로 1~3개 insert 됩니다.
( A테이블에 들어가는 row가 위에 가정한 숫자이고 B테이블은 1.5.배정도 된다고 보시면 됩니다.)
대략 구조는 이렇고 데이터는 한번에 약 70~80만건씩 들어옵니다.. 하루종일 꾸준히 들어오는게 아니고 .. 그래서 요청을 두서번
하면 적게 2백만건이고 약 10번정도 했다고 치면 7~8백만건이라고 한겁니다.
근데 A테이블중에 날짜컬럼이 있는데 시분초까지 들어갑니다. 이걸 일일통계 냅니다. 새벽에 스케쥴이 돌아가는데
60만건 데이타 쿼리 돌려봤는데 3분이나 걸리네요;;
select ......
from a. b
where a.seq = b.seq and a.date like to_char(sysdate-1, 'yyyymmdd')||'%'
group by zipcode, house
대략 이런식인데..
현재 각 seq에는 index가 걸려있고 b테이블에는 (seq,house) 하나 더 있습니다.
date에 index를 거는게 좋은지 안좋은지 잘 모르겠습니다.. index를 걸면 insert에서 느려질것 같아서..
insert는 신속히 작업되어야 하고 솔직 통계는 새벽에 스케쥴이기에 빠르지 않아도 되긴 한데 db서버 cpu점유율이 높아져서..;;