Q & A

DNLINK와 UNION 시 속도 저하 문제.

Date2009.02.26 / Hit : 6215

아래 쿼리에서 각 서브 쿼리들은 인덱스도 잘타고 속도도 빠름니다.

각각 서브쿼리는 1초도 안걸림.

그런데 서브 쿼리 두개를 UNION ALL 하니까 속도가 매우 느려집니다.

한 30초 정도(두개 서브쿼리를 UNION ALL 했을때, 4개를 다하면 300초 정도...)

링크를 빼면 빨라집니다. 1~2초 정도..

링크의 서브쿼리 결과를 UNION 하는데 오라클이 어떻게 처리하길래

이렇게 느리는지 알고싶습니다.

         SELECT *
           FROM (

                -- 대출신규, 기간연장 센터접수건수는 전영업일 데이타를 조회함.
                SELECT
                       CASE WHEN C.SET_DOC_YN = 'Y' AND A.DOC_HIST_CLCD = '20' THEN
                                'LN030101'
                            ELSE
                                 B.MLOBSMCD
                       END MLOBSMCD,
                       SUM(NVL(DECODE(A.DOC_HIST_CLCD, '18', 1, 0), 0)+NVL(DECODE(A.DOC_HIST_CLCD, '20', DECODE(C.SET_DOC_YN, 'Y', 1, 0), 0), 0)) AS RCP_CNT,
                       SUM(NVL(DECODE(A.DOC_HIST_CLCD, '22', 1, 0), 0)) AS RCP_CNT2, -- 반송인수
                       0 AS STOR_CNT,
                       0 AS RS_RCP_CNT,
                       0 AS NORCP_CNT,
                       0 AS URG_CNT
                  FROM TB_PD125@bprprod1 A, TB_PD110@bprprod1 B, TB_PD111@bprprod1 C
                 WHERE A.DOC_HIST_CLCD IN ('18', '20', '22') 
                   AND A.REG_DH BETWEEN TO_DATE('20090105') AND TO_DATE('20090105'||'235959', 'YYYYMMDDHH24MISS')
                   AND A.DOC_BCD = B.DOC_BCD
                   AND B.DOC_BCD = C.DOC_BCD
                   AND B.MLOBSMCD IN ('LN010101','LN010102')
               &

  • 대표전화
    1660-1675

  • 기술 문의
    02-6931-1734

  • 오렌지 문의
    070-8666-8175

  • 라이선스 문의
    02-6931-1728