Certificate/SQLD

[SQLD] 34회 기출 문제 오답 노트

다닿 2023. 11. 15. 16:06

조인연산

NESTED LOOP JOIN

좁은볌위 유리한 성능

순차적으로 처리하며, Random Access위주

후행 테이블에는 조일을 위한 인덱스 생성 필요

실행속도 = 선행테이블 사이즈 * 후행 테이블 접근 횟수

 

데이터를 랜덤으로 액세스 하기 때문에 결과 집합이 많으면 느려짐

join index가 없어나, 조인 집합을 구성하는 검색조건이 조인 범위를 줄여주지 못할 경우 비효율적

테이블중 row수가 적은 쪼을 riven테이블로 설정

 

SORT MERGE JOIN

조인이 대상범위가 넓은 경우 발생하는 Random Access를 줄이기 위한 경우나 연결고리에 마땅한 인덱스가 존재하지 않을 경우 해결하기 위한 조인 방안

양쪽 테이블의 처리범위를 각자 Access하여 정렬한 결과를 차례로 Scan하면서 연결고리의 조건으로Merge하는 방식

 

연결을 위해 랜덤 액세스를 하지 않고 스캔하면서 수행

Nested Loop Join처럼 선행집합 개념이 없음

정렬을 위한 영역(크기)에 따라 효율에 큰 차이 발생

조인연산자가 '='이 아닌 경우 nested loop join 보다 유리한 경우가 많음

 

HASH JOIN

해싱함수 기법을 활용하여 조인을 수행

해시값을 이용하여 테이블을 조인하는 방식

sort merge join은 소트의 부하가 많이 발생하여 이를 보완하기 위한 방법

 

대용량 처리의 선결조건인 랜덤 액세스와 정렬에 대한 부담을 해결할 수 있는 대안

parallel processing을 이용한 히시조인은 대용량 데이터를 처리하기 위한 최적의 솔루션

조인 테이블중 small rowset를 가지고 해시테이블 생성

CBO에서만 가능하며 CPU성는에 의존적

해시테이블 생성후 nestedloop처럼 순차적인 처리 형태로 수행

 

NVL / ISNULL

함수( 표현식1,표현식2 )

표현식1이 NULL이면 표현식2로 바꿔줌

 

NULLIF(표현식1,표현식2)

표현식1과 표현식2가 같으면 NULL , 다르면 표현식1

 

COALESCE(표현식1,표현식2)

NULL이 아닌 최초의 표현식을 나타낸다