파티셔닝 문의 드립니다. 0 1 2,297

by 사랑초 [2013.01.24 17:10:29]


답변 달아드리는 것보다 문의 드리고 글 확인 하는게 더 많은 사람입니다...ㅠ
오늘 파티셔닝 관련 테스트 진행 중 궁금한 사항이 있어 몇 가지 문의를 드리려고 합니다...

일별 들어오는 데이터의 개수가 4천만건이상으로 월마다 집계해야 되는 건수는 10억 이상이며
3개월마다 한번씩 집계를 해야되는 통계성 테이블입니다.
실시간 데이터가 왔다갔다 하는건 아니고, 하루에 한번씩 몰아서 로그성 데이터가 입력이 됩니다...

아래 쿼리는 해당 테이블 구조를 바탕으로 통계 데이터를 추출하기 위해 제가 작성한 SQL문인데요...
파티셔닝을 월별 RANGE + TYPE 별 LIST 구조로 가져갈려고 생각을 했는데
절대 효율이 나올수 없을거라고 그러시네요..ㅠ

인덱스가 WHERE 조건에 해당되지 않은사항은 타지 않는 다고..
통테이블 > 중간집계 로 가거나 아님 월별로 RANGE 만 하라고 말씀하시는데

어찌하는게 효율적이라고 생각하시는지 의견을 말씀해 주시면 감사하겠습니다...
sql문에 대해서 지적해주실 부분있으시면 가감없이 말씀 부탁드립니다....

SELECT
        TO_CHAR(SYSDATE, 'YYYY-MM-DD'),
        DECODE(TO_CHAR(SYSDATE, 'D'),'1','일요일','2','월요일','3','화요일','4','수요일','5','목요일','6','금요일','7','토요일') AS DAY,
        NVL(MAX(DECODE(TYPE,'511', COUNT(TYPE),0)),0),
        NVL(MAX(DECODE(TYPE,'511', COUNT(DISTINCT ID),0)),0),
        NVL(MAX(DECODE(TYPE,'521', COUNT(TYPE),0)),0),
        NVL(MAX(DECODE(TYPE,'521', COUNT(DISTINCT ID),0)),0),
FROM STAT_TB
WHERE RDATE 
      BETWEEN TO_DATE(TO_CHAR(SYSDATE - 1,'YYYYMMDD')||'000000','YYYYMMDDHH24MISS') 
           AND TO_DATE(TO_CHAR(SYSDATE - 1,'YYYYMMDD')||'235959','YYYYMMDDHH24MISS')
GROUP BY TYPE
by 손님 [2013.01.25 10:45:51]
일당 4천만건이면 월별 + 일별 서브 파티셔닝 해야겠네요. 


일별 통계...
SELECT
  TO_CHAR(SYSDATE, 'YYYY-MM-DD'),
  DECODE(TO_CHAR(SYSDATE, 'D'),'1','일요일','2','월요일','3','화요일','4','수요일','5','목요일','6','금요일','7','토요일') AS DAY,
  NVL(MAX(DECODE(TYPE,'511', COUNT(TYPE),0)),0),
  NVL(MAX(DECODE(TYPE,'511', COUNT(DISTINCT ID),0)),0),
  NVL(MAX(DECODE(TYPE,'521', COUNT(TYPE),0)),0),
  NVL(MAX(DECODE(TYPE,'521', COUNT(DISTINCT ID),0)),0),
FROM STAT_TB PARTITON(일별파티션명)
GROUP BY TYPE


월별 통계
SELECT
  TO_CHAR(SYSDATE, 'YYYY-MM-DD'),
  DECODE(TO_CHAR(SYSDATE, 'D'),'1','일요일','2','월요일','3','화요일','4','수요일','5','목요일','6','금요일','7','토요일') AS DAY,
  NVL(MAX(DECODE(TYPE,'511', COUNT(TYPE),0)),0),
  NVL(MAX(DECODE(TYPE,'511', COUNT(DISTINCT ID),0)),0),
  NVL(MAX(DECODE(TYPE,'521', COUNT(TYPE),0)),0),
  NVL(MAX(DECODE(TYPE,'521', COUNT(DISTINCT ID),0)),0),
FROM STAT_TB PARTITON(월별파티션명) A
GROUP BY TYPE
일당 4천만건이면 월별은 답이 안나오네요. Hadoop + Hive 같은 오픈 소스를 이용하는건 어떠신지...
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입