안녕하세요.
회사에서 마케팅 비용의 분석을 위해 데이타베이스 구축 작업을 하고 있는 DB 초보입니다.
그 중 시간이 아주 오래 걸리는 한가지 쿼리에 대해 질문을 드립니다.
비용 테이블과 판매량 테이블이 존재하고
판매량 테이블에서 비용 테이블의 특정 필드의 조건을 만족하는 판매량의 합을 가져와서 붙이는 작업입니다.
Select 비용.*, (Select sum(판매량.판매량) From 판매량 Where 판매량.A= 비용.A ... 판매량.I = 비용.I) ....조건이 좀 많아요. (9개)
From 비용;
그렇게 어렵지 않은 쿼리지만, 비용과 판매량 테이블의 데이타 수가 각각 100만건 정도 되어
무식한 연산으로는 엄청나게 시간이 걸립니다.
제가 인덱스나 View등에 대해 정확히 이해를 못해서
효율적인 작업을 어떻게 해야할지 고민 중입니다.
예를 들어, 인덱스 작업을 하려고 하면 9개의 조건에 대해 양 테이블에 각각 인덱스 생성을 해야 할것 같은데.
인덱스 자체만도 엄청난 조합이 만들어 질것 같고요. (참고로 9개 조건 필드 중 두개의 항목수가 하나는 만개, 하나는 1000개 정도고 나머지는 수십개 정도 수준입니다.)
전문가님들의 많은 조언 부탁드립니다.
감사합니다.
|