안녕하세요 글은 자주 못쓰지만
많은 자료들을 보고 항상 큰도움이 되고 있습니다
outer join 중에 궁굼한것이 생겨 이렇게 글을 올리게 되었습니다.
일단 사용 하는 db 는 oracle 9 인데
outer join 을
select *
from a , b
where a.aa = b.aa(+)
이런 식으로 표기 하던 것에
b 테이블에 조건이 붙을 것이 생겨
select *
from a left outer join b
on a.aa = b.aa
형식으로 사용하게 되었습니다
두 구문 자체가 동일한 left outer join 을 나타내는
쿼리 인데 속도차이가 엄청나게 발생을 하는 것을 발견하였습니다.
기존에 약식(+) 처리 하는것은 쿼리 속도가 1초 내외로 걸리는 반면
두번째 것으로 변경하여 조회를 하니 3분이 넘도록 조회가 안되는 현상입니다.
모든 테이블 정보를 공유 하면 좋겠지만..
그렇지 못하는 점 양해 부탁드리며
두 구문이 동일하게 left outer join 이라고 알고 있는데
두 명령어의 차이는 무엇이 있을까요?
담변하시기 번거로우시면 제가 어디의 자료를 찾아 보면 좋을까요?
( 서브 쿼리를 사용하는 방법으로 일단 문제 해결을 하였으나 궁굼증이 생기네요)
( ps 토드에서 나오는 실행 계획에서 뜨는 인덱스 순서는 동일하게 나옵니다 )