고려사항2. JOIN Order

 

*Driving Table

-드라이빙 테이블이란 두개의 테이블이 조인을 할 경우 먼저 처리 되는 테이블을 의미한다.

-WHERE절의 상수 조건에 가용할 수 있는 인덱스가 존재해야 함

 

*Driven Table

-두 개의 테이블이 조인을 할 경우 뒤에 처리되는 테이블을 의미한다.

-드라이빙 테이블로부터 상수값을 공급받아 처리됨

-연결고리를 통해 상수 값은 공급받게 됨

-따라서, 연결고리에 인덱스가 정상적으로 존재해야 함

-또는, 연결고리와 WHERE절의 상수조건을 포함한 인덱스가 존재해야 함

 

*최적화된 Join Order란?

-모든 연결고리가 정상상태일 경우 처리범위가 적은 쪽에서 부터 드라이빙 되도록 처리하는 것이 일반적으로 최적화된 조인 오더임

 

고려사항 1. JOIN Method

 

 

。SQL은 쉽다?

*'WHAT'만 필요할 뿐 'HOW'는 필요없다.

*배우기가 쉽다.

 -SELECT, FROM, WHERE

 -프로그램을 모르는 END-USER도 손쉽게 SQL을 작성할 수 있다.

*동일한 결과를 얻을 수 있는 방법은 수도 없이 많다.

 

SQL 어렵다?

*최적의 SQL을 작성하는 것은 쉽지 않다.

*SQL은 SELECT, FROM, WHERE절만 알아서 되는 것은 아니다.

*수행되는 과정을 정의할 수 없다.->성능을 담보할 수 없다.

*생각하지 않은 SQL을 성능을 보장 받을 수 없다!

 

그렇다면 어떻게 해야 최적의 SQL을 작성할 수 있을까?

 

 

 

 

 

 

 

 

 

SQL의 집합적 사고

 

 

+ Recent posts