답변 달아드리는 것보다 문의 드리고 글 확인 하는게 더 많은 사람입니다...ㅠ
오늘 파티셔닝 관련 테스트 진행 중 궁금한 사항이 있어 몇 가지 문의를 드리려고 합니다...
일별 들어오는 데이터의 개수가 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