오라클 멀티 테이블 세 가지 알고리즘을 조인

다중 테이블에 대한 세 가지 방법, 병합 조인, 해시 조인 중첩 루프를 상세 조인
할 때 공동 멀티 테이블 쿼리, 우리는 당신이 테이블 사이에 어떻게 연결을 찾을 구현 계획, 보면. 세 가지 방법으로 여러 테이블 사이의 연결 : 중첩 된 루프, 해시 정렬 병합 조인 및 연결 특정 응용 프로그램의 유형 것은 현재의 최적화 모드 (ALL_ROWS 및 규칙)에 따라 가입 ..

A. 해시 조인 해시 가입

해시가 해시 일반적인 방법 연결 CBO 큰 데이터 세트 인 조인은 최적화 알고리즘은 메모리에 결합하여 (KEY 가입) (또는 테이블 데이터 소스가 통상 더 작은) 두 테이블 작은 테이블을 사용 해시 테이블, 해시리스트에 저장된 열 데이터, 큰 주사 업 테이블, 해시 대해 동일한 검출 후 해시 테이블 매칭 해시 테이블의 행을 찾아 KEY 가입. 참고 : 해시 테이블이 메모리에 너무 큰 구조 인 경우, 여러 파티션, 디스크에 기록 임시 세그먼트로 나누어 져 있습니다, 그것은 또 하나 개의 비용을 쓸 것은, 효율성을 감소시킨다.

총 비용이 방문하고 두 테이블의 비용이 때문에이 방법은, 메모리에 넣을 수 있습니다 작은 테이블의 경우에 적용됩니다. 이 경우이 있어야하지만, 전적으로 메모리에 매우 큰 테이블의 경우는, 임시 디스크 파티션에 기록 된 메모리 세그먼트의 부분에 투입 할 수없는 여러 파티션으로 시간이 최적화 될 것입니다 큰 임시 세그먼트함으로써 I / O 성능을 극대화 할 수 있습니다.

해시 조인을 사용하여 힘을 USE_HASH (table_name1 table_name2) 힌트 수 있습니다.

사용법 :

해시는 매우 다른 시대의 두 테이블에서 데이터의 양을 가입 할 수 있습니다.

clip_image001

II. SORT 병합 가입 : 정렬 병합 조인

병합 가입 대전을 각각 열 메이크업 다른 정렬 테이블을 정렬하고 각 분류 테이블로부터 데이터를 추출과 관련된 제 연관 테이블이다.

병합 정렬에 더 많은 작업을 수행 할 필요가 참여하기 때문에, 그래서 더 많은 자원을 소모합니다. 일반적으로, 병합을 사용할 수있는 곳이 참여, 해시가 더 나은 성능을 재생할 수 있습니다 조인, 정렬 병합 더 나은 조인 이상의 연결된 해시 효과입니다. 그러나, 연결이 정렬 병합을 수행 할 필요가 없습니다 라인 소스가 있었는지 과방 순서는 다음 종류의 병합이 더 해시에 비해 수행을 조인, 분류.

그것은 가입 정렬 병합의 사용을 강제로 사용 USE_MERGE (table_name1의 table_name2를) 할 수있다.

적용 :

1.RBO 모드

2. 관련 inequivalent (>, <,> =, <=, <>)

3.HASH_JOIN_ENABLED = 거짓

인덱스없고, 데이터가 정렬되어있는 경우 (4).

clip_image002

III. NESTED LOOP : 중첩 루프 조인

중첩 루프 작업주기는 다음 다른 테이블 (룩업 테이블 내부 테이블, 일반적으로 인덱스)에 액세스 테이블 데이터 (테이블 구동 외부 테이블)에서 읽습니다. 표 내부 테이블 구동 행에 대응하는 각 레코드는 가입. 마찬가지로 중첩 루프.

데이터의 서브 세트가 연결되면 작고, 중첩 루프 조인 더 나은 선택이다. 전체 쿼리가 결과 집합 (이상 10,000 적합하지 않습니다), 너무 크지 않은 반환하므로 중첩 루프, 내부 중심의 외관에, 각 행에 대해 내부 테이블의 모양은, 그것을 검색하고 라인 매칭을 찾기 위해 반환 할 내측 필드 테이블 접속 작은 외부 테이블로 리턴 (CBO 외부 구동 기본 테이블)의 서브 세트 및 색인되어야한다. 물론, 당신은 또한 기본 드라이브 CBO 테이블을 변경하라는 메시지가 주문 사용할 수 있습니다.

사용 USE_NL (table_name1의 table_name2)하지만 강제 CBO는 중첩 루프 조인을 수행합니다.

적용 :

기록지 세트 작은 (<10,000)와 내부 테이블을 구동하도록하는 유효한 액세스 방법 (색인) 때 인덱스 좋은 선택성을 필요로한다.

순서가 중요 가입, 운전 기록은 테이블이 작아야 설정, 결과 세트 응답 시간이 가장 빠른 반환합니다.

:에서 재판 https://www.cnblogs.com/xqzt/p/4469673.html

게시 25 개 원래 기사 · 원 찬양 1 ·은 10000 +를 볼

추천

출처blog.csdn.net/kimi_Christmas/article/details/89184827