설문조사
PostgreSQL/PPAS 관련 듣고 싶은 교육은


Powered by EnterpriseDB
총 게시물 131건, 최근 0 건
   

쿼리 성능에 대하여 질문드립니다.

글쓴이 : ㄱ나니 날짜 : 2018-08-21 (화) 16:28 조회 : 182
안녕하세요

현재 4000명의 회원의 1인1일 데이터로 구축했으며 데이터가
30년치정도가 되는 큰 테이블이 있습니다. (약  3천만 Row)
여기에는 연월일 필드가 있으며 year가 인덱스로 걸려있습니다.

이 데이터중 2017년의 자료를 회원별 지역구분으로 그룹하여 Sum(일별값)을 일자별로 조회하는데
쿼리속도가 약 15초 정도 걸립니다.

쿼리문은 대략
select
    i.zone_code
    ,d.ymd
  ,sum(d.value) as data
from
    tbl_mem_info i
    left outer join (select mem_id, ymd, value from tbl_mem_data where year=2017) d on i.mem_id=d.mem_id
group by i.zone_code, ymd
order by i.zone_code, ymd
이렇게 짯습니다.

쿼리문 Cost를 보니 2017년 data row를 가져오는데 상당히 큰 Cost가 발생하더라고요...

1. 3천만건 테이블의 연도 인덱스를 태워 한 년도 데이터(120만건)을 가져오는 속도가 위와 같다면 평범한것인가요?
2. 테이블 설정과 여타 다른 튜닝을 통하여 쿼리속도를 개선하는 방법이 있을까요?
3. 3에서 최대 5초 안에 결과물을 보고싶다면 어떤부분을 개선해야할까요?

postgresql 고수분들의 답변 부탁드립니다.

ㄱ나니 2018-08-21 (화) 16:38
1차 자체답변
tbl_mem_data 테이블의 ymd는 character 8자리의 텍스트인데 그룹을 month(int), day(int)로 바꾸서 해보니
2.8초 까지 속도가 빨라졌습니다.
댓글주소
   

postgresdba.com