안녕하세요.
오늘 쿼리문 작성하다가 효율이 너무 떨어져서 부득이하게 질문을
드립니다.
현재 Table 관계는 아래와 같습니다.
client
used
이렇게 되어 있습니다.
client는 고객의 정보 테이블이고 used는 고객이 사용한
금액테이블입니다.
문제는 used에 복수의 c_id가 들어갈 수 있다는 겁니다.
어제 만원 사용하고 오늘 2만원 사용했다면..총 2개의 레코드가
들어가는거죠.
여기서 client는 약 9000 레코드가 들어가 있구요
used는 레코드가 200개 정도 됩니다.
이제 고객의 모든 정보를 출력할 때 각 고객이 사용한 총액을
보여줘야 합니다.
고로..
SELECT *
FROM client ca LEFT JOIN used_view uv ON ca.c_id=uv.c_id
used_vew는 각 고객이 사용한 총액을 구하는 뷰입니다.
CREATE VIEW used_view(
c_id,
SUM(u_amount)
AS
select
c.c_id,
sum(u_amount)
from
client c,
used u
where
c.c_id=u.c_id
group by
c.c_id
요렇게 하면 각 고객이 사용한 총액을 구하고 출력을 할 수
있는데..
문제는 시간입니다..
약 20초 정도 걸립니다..
어떻게 해결 방안이 없을까요?
테이블 변경은 불가능한 상태구요..
뷰는 변경할 수 있습니다.
간단한 팁이나 조언 좀 부탁드립니다.
|