조인 시 쿼리 실행 순서 (on, where) 0 3 710

by 블루블랙까마귀 [Oracle Tuning] [2020.02.21 14:58:21]


안녕하세요 항상 많은 도움을 받고 있습니다.

 

1.

아래와 같은 쿼리 질의시 ON절이 먼저 실행되는지 WHERE절이 먼저 실행되는지 궁금합니다.

SELECT * FROM TABLE1 TAB1 LEFT JOIN TABLE2 TAB2
ON (TAB1.COL = TAB2.COL)
WHERE TAB1.COL = 'test'

 

2.

추가적으로 날짜를 담고 있는 컬럼(20200221)이 있고

해당 컬럼으로 인덱스를 걸어놓았습니다.

근데 만약 도중에 해당 컬럼의 값을 다른값으로 변경을하고

변경된값으로 조회를 하게 되면 인덱스를 탈까요?,,

by 마농 [2020.02.21 16:01:38]

1. 어떤 것이 더 효율적일지 상식적으로 생각해 보시면 됩니다.
 - 조인 후 필터 : 비효율
 - 필터 후 조인 : 효율
2. 인덱스
 - 데이터 변경시 인덱스도 같이 바뀝니다.


by 블루블랙까마귀 [2020.02.21 16:53:54]

답변 감사합니다 마농님

아래 의미로 말씀해주신거 같은데

조인 = ON

필터 = WHERE

필터 후 조인이 더 효율적이기때문에

오라클에서는 WHERE 부터 실행한다라고 이해하면 될까요,,?


by 마농 [2020.02.21 22:26:13]

오라클에 한정한 답변이 아닙니다.

누구든 비효율을 피하고 싶어 하겠지요.

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