A,B,C 3개 테이블 조인시 A, B 조인된 결과로 C 테이블 조인하나요? 0 3 135

by 유환 [Oracle 기초] [2020.03.24 23:11:09]


안녕하세요.~

조인에 개념 질문 입니다. 네스트 루프 방식으로 조인하다 가정 하고 

A, B, C 테이블 조인시....

A,B 조인해서 나온 결과 집합으로  C랑 조인 하는건가요?

즉 A,B조인 해서 나온 결과가 10개 라면  10개 결과 집합에서 C랑 조인....

아님 A=B=C 이런식으로 죽~ 한번에 연결해서 조인 하는건가요?

상식적으로 생각하면 A,B 조인하고 만들어진 집합에서 C랑 조인하는게 더 빨리 찾을거 같기는 한대요..

 

 

 

by ㅇㅇ준 [2020.03.25 09:42:57]

SQL 작성을 A,B,C 테이블 순으로 작성하셨다 하더라도 별도의 강제 조정의 작업이 없다면 테이블 조인 순서는 옵티마이저가 결정합니다.

옵티마이저가 결정한 테이블 접근 순서가 A B C 순이라면 말씀하신대로 A,B를 조인 후 결과를 가지고 C에 NL접근하겠습니다


by 마농 [2020.03.25 10:16:09]

A - B 조인 후 전체 집합을 가지고 다시 C 와 조인할 수도 있고, (A - B) - C 형태
A - B 조인을 하면서 1건씩 C 와 조인 할 수도 있습니다. A - B - C 형태 반복
조인방식이 NL 로 풀린다면 후자 쪽이 될 가능성이 있죠.
그때 그때 달라요.


by ㅇㅇ준 [2020.03.25 12:09:09]

어라 NL조인이고 A B C 순에서 A가 B와 조인 후 C 가능 것이 아니라 B와 동시에 C 접근을 하는 경우도 가능한가요?

몰랐습니다...제가 잘못된 정보를 올렸군요....수정해야하나..ㅠㅠ

질문하신 분은 마농님 답변으로 보시면되겠습니다~~

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입