cd database/대용량데이터베이스

대용량 DB 12강 (해쉬조인, 리커시브 SQL)

성덕 2014. 5. 29. 22:25

1.     해쉬 조인 (Hash Join)

A.     해시연산에 의해서 바로 자기가 있어야 할 위치를 지정해서 맵핑 후 데이터를 뽑아낸다. CPU속도만 좋다면 속도가 아주 빠르다.

B.      가능한 데이터가 적은 테이블이 드라이빙 됨.

C.      데이터가 작은 테이블과 큰 테이블을 JOIN 할 때 가장 좋은 퍼포먼스를 낸다.

 

2.     순환 관계의 처리 (1:M)

A.     리커시브 모델

                             i.         구조(순환 관계)가 변경되어도 식별자는 변하지 않아 과거 데이터 변경이 불필요하다.

                            ii.         사용이 약간 불편하며 숙달된 기술력이 필요

                           iii.         약간의 기술력이 필요함 (잘못 사용 시 수행속도가 저하된다.)

 

3.     오라클의 리커시브 SQL 지원

A.     구문

                             i.         From 절에 하나의 테이블만 나옴. (자기 스스로 JOIN 되기 때문..)

                            ii.         WHERE .. CONNECT BY PRIOR … START WITH ..의 구문

                           iii.         START WITH에 드라이빙 조건이 나옴.

                           iv.         SELECT LEVEL à 테이블을 전개한 횟수에 따라 LEVEL이 늘어남

                            v.         PRIOR ALIAS 이기 때문에 WHERE, SELECT 절에도 사용 가능.

 B.      최상위 부서부터 나타내고 싶다면?

                             i.         최상위 ID의 상위부서는 NULL 일 것이다. 그런데 NULL로 될 경우 인덱스를 타지 않는다. 이에 대한 해결 방법은? ‘*’를 넣으면 된다.

C.      제한 사항

                             i.         두개 이상의 테이블을 사용할 수 없다.

                            ii.         순서를 저장하고 있지 않다. 자신의 한 단계씩 상위로만 찾아갈 수 있다.