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. 순서를 저장하고 있지 않다. 자신의 한 단계씩 상위로만 찾아갈 수 있다.
'cd database > 대용량데이터베이스' 카테고리의 다른 글
대용량 DB 11강 (Join) (0) | 2014.05.23 |
---|---|
대용량 DB 10강 (인덱스 , 조인) (0) | 2014.05.16 |
대용량 DB 9강 정리 (인덱스 선정) (0) | 2014.05.14 |
대용량 DB 7강 정리 (index의 사용) (0) | 2014.05.03 |
대용량 DB 5강 정리(lock) (0) | 2014.04.22 |