반응형
Nested Loop Join
<query>
select ~~
from tab 1
tab 2
where tab1.col1 = '10'
and tab1.key1 = tab2.key2 -> 인덱스 필 쑤
and tab2.col2 = 'Y';
특징 :
1. 연결고리에 인댁스가 존재하는 경우에 사용해야 한다.
2. 처리량이 적은 경우 유리하다.
3. 순차적으로 처리하며, 부분범위 처리가 가능하다.
4. 조인의 순서에 따라서 성능의 차이가 존재할 수 있어, 처리 범위를 줄일 수 있는 순서를 선택해야한다.
작은 테이블을 조인할 때나, 테이블에 인덱스가 있는 경우에는 효율적이야.
Hash join - Random Access 와 sort를 어떻게 없앨 것인가?
풀어지는 테이블 = 빌드 테이블
Tab2는 메핑되는 것이 있나 없나 체크하고 있는 경우에만 파티션 테이블로 가서 join을 하게된다.
*Table1이 Hash Area보다 작아야한다.*
데이터베이스에서 Nested Loop Join과 Hash Join 같은 연산들은 일반적으로 **데이터베이스 관리 시스템(DBMS)**이 자동으로 수행하는 작업이다.
즉, 우리가 직접 이런 연산을 명시적으로 코딩할 필요는 없다.
우리가 SQL 쿼리를 작성하면, DBMS가 그 쿼리를 최적화하고, 그 중 가장 효율적인 방법으로 데이터를 가져오는 과정에서 이 두 가지 방법 중 하나를 사용할 수 있다.
반응형
'DATABASE' 카테고리의 다른 글
태태개발일지 - 공유락, 베타락 (1) | 2024.12.12 |
---|---|
태태개발일지 - DB Lock (1) | 2024.10.23 |
태태개발일지 - DB 관계 데이터 모델링 (4) | 2024.10.06 |
태태개발일지(sql) (0) | 2023.12.15 |
태태개발일지(정규화) (1) | 2023.11.27 |