SQL 튜닝 문의드립니다. 콤보박스 생성 (DISTINCT) 0 3 2,688

by 싸나이의로망 튜닝 콤보 DISTINCT [2016.06.02 16:17:06]


 웹만들때 조회조건을 기준년월을 만들어야 되는 경우가 생겼습니다.

기준년월 컬럼의 데이터 분포도는 201501 ~ 201512 까지입니다.

총 데이터는 3000만건 정도가 들어있습니다.

 

근데 웹방식이라 매번 들어갈때 조회할수 있는 콤보박스를 만들기 위해

 

SELECT DISTINCT 기준년월

  FROM 대상테이블

;

 

이런식으로 콤보박스를 만드는데 시간이 너무 오래걸립니다.

Non-Unique Index 이런것도 다 오래걸리더라구요

혹시 방법 없을까요?

by 마농 [2016.06.02 16:31:38]
SELECT 기준년월
  FROM (SELECT '2015' || LPAD(LEVEL, 2, '0') 기준년월
          FROM dual
         CONNECT BY LEVEL <= 12
        ) a
 WHERE EXISTS (SELECT 1 FROM 대상테이블 WHERE 기준년월 = a.기준년월)
;

 


by 싸나이의로망 [2016.06.02 19:21:57]

와우 감사드립니다. 짱짱맨이에요!


by 최민진 [2016.06.02 17:28:32]
위 분 의견과 동일하네요.
혹시 년을 고정하시기 그러시다면, 최근 100개월 기준으로 뽑는 겁니다.

SELECT 기준년월
FROM    (SELECT TO_CHAR(ADD_MONTHS(SYSDATE, -level), 'YYYYMM')
                FROM dual
                 CONNECT BY LEVEL <= 100) a
WHERE EXISTS(SELECT 1 FROM 대상테이블 WHERE 기준년월 = a.기준년월)

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입