조인의 특징 및 사용 기준

Posted by Breeze24
2016. 6. 4. 23:35 DB/Oracle


조인의 특징 및 사용 기준



1. 중첩 루프 조인



사용 기준)

주로 온라인 어플리케이션에서 사용.

부분범위 처리나 사용자가 데이터를 요구 했을 때 짧은 시간에 결과를 볼 수 있는 적은 데이터를 액세스 할 때 사용.




2. Sort Merge Join



원리) 

양쪽 테이블을 각자 액세스하여 처리 범위를 줄이고, 조인컬럼 순으로 데이터를 Sort한  후에 조인컬럼으로 조인한다. 

각 테이블에 주어진 조건으로 처리 범위를 줄인 후 Sort하고, 각 테이블을 조인한다. 

조인 시에 인덱스를 사용하지 않는다. 


사용 기준)

각 테이블이 범위를 많이 줄일 수 있을 때

조인 컬럼의 인덱스가 필요 없을 때

두 테이블의 데이터의 양이 비슷할 때


단점)

두 테이블의 크기가 많이 차이 나는 경우에는 비효율적이다. (각 테이블의 정렬 작업이 종료되지 않으면 조인이 시작될 수 없어 그 만큼 지연 시간이 발생한다.)


.
3. Hash Join


배경) 

대용량 처리의 선결조건인 랜덤 I/O와 정렬에 대한 부담을 해결할 수 있는 대안으로 등장. 


특징)

인덱스를 사용하지 않는다. 

CPU, 메모리의 성능에 의존적이다. 

해쉬코드를 사용하기 때문에 '='로 수행하는 동등 조건에서만 사용 가능 

메모리에 해쉬 테이블을 생성하기 때문에 작은 테이블이 존재해야 한다. 

 

사용 기준) 

조인되는 컬럼이 인덱스가 없을 경우.(어차피 Full Scan을 해야한다.)

대량의 데이터 엑세스 시(배치 처리) 

Full Table Scan 하면서 조인 해야 할 때 유리하다. 

비용은 많이 들지만 수행속도를 보장해야 하는 작업에 유용하다.

.

'DB > Oracle' 카테고리의 다른 글

오라클 세션 Kill  (0) 2016.06.04
SQL 튜닝 가이드  (0) 2016.06.04
TABLE Full SCAN의 필요성  (0) 2016.06.04
EXPLANIN PLAN과 SQL Trace의 차이  (0) 2016.06.04
MSSQL SID 확인 방법  (0) 2016.06.04