본문 바로가기

나의 FE피봇이야기/Dev_Knowledge

[DBMS]Nested Loop, Sort_Merge and Hashed Join

완전히 이해된 개념은 아니지만 이곳에 정리하고 또 채워나가보도록 하겠다.

 

아래 영상을 보고 이해를 했고 PGA(Program Global Area)에 대한 정보를 추가하였다.

https://www.youtube.com/watch?v=SVD5ldwVYpo

https://lhoris.tistory.com/129

 

 

 

PGA

오라클 독스
오라클 독스

 

예시

Table A =  IDOL_GROUP

Table B = IDOL_MEMBER

Relationship(Column) : GORUP_NAME

 

 

Nested Loop Join

IDOL_GROUP = Outer table

IDOL_Member = Inner table

 

IDOL_GROUP에서 소녀시대라는  Row하는 선택하고 InnerTable에서 소녀시대 맴버를 찾아서 쭈루록 등록

일종의 For 문을 돌리는 형태

그결과 Index 구성 전략이 필요해짐 왜냐하면 Index가 없으면 계속 Inner Table Full scanning을 할 꺼니까

 

Outer Table은 보통 소량의 데이터가 있는 곳을 선정

1 :N관계에서 1을 담당하는  Table.

 

 

Sort_Merge Join

Nested Loop에 적절한 Index가 없어서 NL이 비효율적이라고 판단될 때

범위로 join을 할 때

PGA에서 이뤄지는 작업이기 때문에 성능이 좋음(하드웨어 측면을 이야기하는 것 같음)

 

 

 

Hashed Join

Table B = IDOL_MEMBER 에 데이터가 너무 많을 때, Table A =  IDOL_GROUP을 선행테이블(Build Input)테이블로 사용하여 작업 진행.

PGA Hashed Join 영역을 이용하여 IDOL_GROUP으로 IDOL_Member를 찾는 시스템

 

수정사항 있으면 댓글 달아주세요~