안녕하세요. 오라클 DBA 역할을 하고 있습니다. JOIN 에 대해서 얘기하던 중에 오라클에서는 테이블 읽는(driving) 순서에 따라 속도차이가 크다고 얘기를 해드렸더니, MS-SQL 에서는 그렇지 않고 속도가 동일하다고 하시더라구요. 이게 맞는지 궁금합니다.
mssql 도 driving table 순서에 따라서 속도에 많은 영향을 받는 것은 마찬가지 입니다.
oracle의 경우 10g 이하 버전에서는 optimizer 를 cbo 혹은 rbo 두가지 모두 설정이 가능하며..
rbo의 경우 driving 순서는 개발자가 직접 지정 할수 있으며,
cbo 의 경우는 옵티마이져가 최적의 상태로 driving table을 선정하게 됩니다.
물론 모든 경우 옵티마이져가 정상적으로 동작하지는 않지만.... 그럴경우 힌트를 통해
제어 하지만... 대부분의 경우 옵티마이져는 최적의 엑세스 path를 위해 드라이빙 테이블을
선정하게 됩니다.
mssql 의 경우 기본이 cbo 이고 오라클의 cbo와 마찬가지로 옵티마이져가 동작하는 메카니즘은
같습니다.
따라서 드라이빙 테이블의 선정은 두 db 모두에게 엑세스 최적화에 있어 중요한 영향을
미치게 됩니다.
수고하세요..
자세한 설명 감사합니다.