필터 조건이 많을 경우 처리 방법이 궁금합니다. 0 2 1,930

by 푸른기린 [SQL Query] [2011.07.29 11:35:03]



안녕하세요.

다름이 아니라 값을 적재하는데 필터링 해야하는 값이 많습니다.

아이디 넘버로 걸러 준다고 할때 400개 가량의 아이디 넘버를 제외하고 값을 적재하여야하는데

필터에 400개가 되는 값을 기재하니 속도가 많이 늦네요.




조인을 이용하는 방법이나, 다른 방법이 있는지 배우고 싶습니다.
by 마농 [2011.07.29 13:41:16]
400개 id를 별도 집합으로 만들고 아우터 조인을 해보세요.
조인시 성능을 좌우하는 것은 작은 집합이 선행집합니 되는 것입니다.
그러나 아우터 조인 시 (+)가 붙은 테이블은 항상 후행 테이블이 됩니다.
대용량 테이블이 선행집합이 되므로 성능에 안좋습니다.
하지만 10g 부터는 (+)가 붙은 집합도 선행집합이 될 수 있습니다.
HASH JOIN RIGHT OUTER 로 실행계획을 유도해 보세요.

SELECT /*+ use_hash(b a) swap_join_inputs(b) */ *
FROM main_t a
, except_t b
WHERE b.id(+) = a.id
AND b.id IS NULL
;

by 푸른기린 [2011.07.29 14:55:00]
감사합니다 마농님
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입