조인연산
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이 아닌 최초의 표현식을 나타낸다
'Certificate > SQLD' 카테고리의 다른 글
[SQLD] 39회 기출 문제 오답 노트 (0) | 2023.11.16 |
---|---|
[SQLD] 35회 기출 문제 오답 노트 (0) | 2023.11.15 |
[SQLD] 30회 기출 문제 오답 노트 (0) | 2023.11.14 |
[SQLD] 21회 기출 문제 오답 노트 (0) | 2023.11.14 |
[SQLD] SQL 기본 이론 정리 (0) | 2023.11.08 |