Support
Orange Support > 문의하기
Q & A
DNLINK와 UNION 시 속도 저하 문제.
아래 쿼리에서 각 서브 쿼리들은 인덱스도 잘타고 속도도 빠름니다.
각각 서브쿼리는 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')
&