SELECT A.TYPE_CD, A.TYPE_NAME, B.FORM_CD, B.FORM_NAME,
0 AS CHK
FROM TF_APP_TYPE_CD A
LEFT OUTER JOIN TF_APP_FORM_CD B ON A.TYPE_CD = B.TYPE_CD
WHERE 1 = 1
AND A.USE_YN = '1'
AND B.USE_YN = '1'
AND A.TYPE_CD || B.FORM_CD NOT IN (
SELECT SUB.TYPE_CD || SUB.FORM_CD
FROM TF_APP_FIN_CHR_SETUP SUB
LEFT OUTER JOIN VW_FIN_DEPT_LEVEL SUB2 ON SUB.DEPT_CD = SUB2.DEPT_CD
WHERE 1 = 1
AND SUB2.DEPT_CD IS NOT NULL
GROUP BY SUB.TYPE_CD, SUB.FORM_CD
)
ORDER BY A.TYPE_CD, B.FORM_CD;
느리다. 느린거로 발견됐다.
원인은 VIEW 에 있었다.
VIEW를 단일로 실행하면 빠르지만 , 해당 쿼리와 함께하면
너무 느린것이다.
이유는 VIEW는 DB_LINK로 연결된 테이블 3종으로 수행되는 쿼리
driving_site 힌트도 안먹는다?
원인은 모라고 테이블과의 조인조건 때문이다.
덤으로 에헤라디야 || 이노마디여 같은 가공조건이 INDEX사용을 방해했다.
SELECT A.TYPE_CD, A.TYPE_NAME, B.FORM_CD, B.FORM_NAME,
0 AS CHK
FROM TF_APP_TYPE_CD A
LEFT OUTER JOIN TF_APP_FORM_CD B ON A.TYPE_CD = B.TYPE_CD
WHERE 1 = 1
AND A.USE_YN = '1'
AND B.USE_YN = '1'
AND (A.TYPE_CD, B.FORM_CD) NOT IN (
SELECT /*+ no_merge */
A.TYPE_CD , A.FORM_CD
FROM (
SELECT SUB.TYPE_CD , SUB.FORM_CD
FROM TF_APP_FIN_CHR_SETUP SUB
LEFT OUTER JOIN VW_FIN_DEPT_LEVEL SUB2 ON SUB.DEPT_CD = SUB2.DEPT_CD
WHERE 1 = 1
AND SUB2.DEPT_CD IS NOT NULL
GROUP BY SUB.TYPE_CD, SUB.FORM_CD
) A
)
ORDER BY A.TYPE_CD, B.FORM_CD
;
no_merge 로 묶어주면 view를 풀지 않고 수행하여 해결 
