2013-10-26 2 views
8

하나의 저장 프로 시저를 조정하는 동안 갑자기 내 마음에 의문이 들었습니다. 내가 물어 보자 -INNER JOIN 성능은 테이블 순서에 따라 좌우됩니까?

나는 두 개의 테이블 table1과 table2를 가지고있다. table1은 거대한 데이터를 포함하고 table2는 적은 데이터를 포함합니다. 이 두 쿼리간에 성능상의 차이가 있습니까 (테이블의 순서가 변경됨)?

에 Query1 :

SELECT t1.col1, t2.col2 
FROM table1 t1 
INNER JOIN table2 t2 
ON t1.col1=t2.col2 

QUERY2 :

SELECT t1.col1, t2.col2 
FROM table2 t2 
INNER JOIN table1 t1 
ON t1.col1=t2.col2 

우리는 (마이크로 소프트 SQL 서버 2005

+4

되지 않은 제정신 데이터베이스 시스템이다. 테이블의 순서를 바꾸려는 의도라도. 현대의 모든 데이터베이스는 이러한 이유로 데이터 볼륨에 대한 통계를 보관합니다. – Laurence

+0

별칭은 쿼리에 영향을 미치지 않습니다. 당신의 관심사는 무엇입니까? –

+0

관련 : http://stackoverflow.com/questions/9614922/does-the-join-order-matters-in-sql –

답변

6

별칭 및 조인에서 테이블의 순서를 사용하는 INNER JOIN이라고 가정)는 최종 결과에 영향을 미치지 않으므로 각 결과에 영향을주지 않습니다 주문이 질의가 실행될 때 (필요한 경우) 대체되기 때문에).

현재 관계 대수에 대한 몇 가지 기본적인 개념을 읽을 수 있습니다 http://en.wikipedia.org/wiki/Relational_algebra#Joins_and_join-like_operators