실행계획 용어 정리
결합 처리에 관한 실행 계획
1.NESTED LOOP : NESTED LOOP 조인을 사용한 결합 처리
1)OUTER : 중첩 루프를 사용하여 외부 조인 처리
2.MERGE JOIN : 2개의 행 세트 각각 특정 항목으로 정렬하고 결합된 결과를 리턴
1)OUTER : 병합에 의한 외부 조인
2)ANTI : 병합된 앤티 결합(반대 결합)
3)SEMI : 병합에 의한 세미 결합(세미 조인)
4)CARTESIAN : 병합에 의한 CARTESIAN
3.HASH JOIN : 해시로 2개의 행 세트의 결합
1)ANTI : 해시 앤티 결합(반대 결합)
2)SEMI : 해시 의한 세미 결합(세미 조인)
3)RIGHT ANTI : 해시로 오른족 안티 결합
4)RIGHT SEMI : 해시로 오른쪽 세미 조인
5)OUTER : 해시로 (왼쪽) 외부 조인
6)RIGHT OUTER : 해시로 오른쪽 외부 조인
4.CUBE SCAN : INNER JOIN 의한 큐브 액세스
1)PARTIAL OUTER : INNER SOIN과 OUTER JOIN이 혼성 된 큐브 액세스
2)OUTER : OUTER JOIN 의한 큐브 액세스
인덱싱 실행 계획
1.BITMAP
1)CONVERSION
1-1)TO ROWIDS : Bitmap 인덱스의 비트 맵 표현을 ROWID로 변환
1-2)FROM ROWIDS : ROWID를 비트 맵으로 표현하기
1-3)COUNT : ROWID의 수를 돌린다. 테이블의 값을 필요로하지 않는 경우에 유용
2)INDEX
2-1)SINGLE VALUE : 임의의 키 값의 비트 맵을 얻음
2-2)RANGE SCAN : 범위의 키 값의 비트 맵을 얻음
2-3)FULL SCAN : 전체 인덱스 스캔을 수행
3)MERGE : 여러 비트 맵을 하나로 병합하기
4)MINUS : 2개의 비트 맵의 비트빼기
5)OR : 비트맵 OR 연산
6)AND : 비트맵 AND 연산
7)KEY ITERATION : 표에서 행을 꺼내 색인에서 해당 비트맵을 검색
2.DOMAIN INDEX : 도메인 인덱스에서 ROWID를 얻음
1)UNIQUE SCAN : B-Tree 인덱스에서 고유 키를 사용하여 하나의 ROWID를 얻음
2)RANGE SCAN : 인덱스에서 범위 (시작 키, 정지 키)를 키로 해 1이상의 ROWID 취득
3)RANGE SCAN DESCENDING : INDEX RANGE SCAN을 색인 값으 내림차순으로 검색
4)FULL SCAN : 색인에서 모든 ROWID의 취득
5)FULL SCAN DESCENDING : INDEX FULL SCAN을 인덱스의 내림차순으로 행함
6)FAST FULL SCAN : INDEX FULL SCAN의 고속버전
7)SKIP SCAN : INDEX SKIP SCAN을 사용하여 ROWID의 취득
테이블 액세스/구체화 돈 뷰 액세스에 대한 실행 계획
1.TABLE ACCESS
1)FULL : 테이블의 모든 행을 반환
2)CLUSTER : "인덱스 클러스터 키 값"을 사용하여 테이블에서 행을 검색
3)HASH : "해시 클러스터 키 값"을 사용하여 테이블에서 행을 검색
4)BY ROWID : ROWID를 사용하여 테이블에서 행을 검색 (9i에서 소멸)
5)BY USER ROWID : ROWID를 사용하여 테이블에서 행을 검색(ROWID를 조건으로 지정하는 경우)
6)BY INDEX ROWID : 색인을 사용하여 행을 검색
7)BY GLOBAL INDEX ROWID : 글로벌 인덱스만을 사용하여 행을 검색
8)BY LOCAL INDEX ROWID : 로컬 색인과 0개 이상의 글로벌 색인을 사용하여 행을 검색
9)SAMPLE : 테이블에서 행의 샘플 채취(테이블 데이터를 랜덤 샘플링 한다)
10)BY ROWID RANGE : ROWID 범위를 사용하여 테이블에서 행을 검색
11)SAMPLE BY ROWID RANGE : ROWID 범위를 사용하여 테이블에서 행의 샘플 채취
2.MAT_VIEW ACCESS
1)FULL : TABLE ACCESS "FULL"
2)CLUSTER : CLUSTER 옵션 조작
3)HASH : HASH 조작
4)BY USER ROWID : BY USER ROWID 옵션 조작
5)BY INDEX ROWID : BY INDEX ROWID 옵션 조작
6)BY GLOBAL INDEX ROWID : BY GLOBAL INDEX ROWID 옵션 조작
7)BY LOCAL INDEX ROWID : BY LOCAL INDEX ROWID 옵션 조작
8)SAMPLE : SAMPLE 옵션 조작
9)BY ROWID RANGE : BY ROWID RANGE 옵션 조작
10)SAMPLE BY ROWID RANGE : SAMPLE BY ROWID RANG 옵션 조작
3.MAT_VIEW REWRITE ACCESS
1)FULL ... etc : TABLE ACCESS "FULL"의 실현 전망 재작성 버전
아마 MAT_VIEW ACCESS와 같은 옵션 군이 있는 것으로 보인다.
4.VIEW : 뷰의 쿼리를 실행하고 행을 반환
행 작업에 대한 실행 계획, 기타
1.AND-EQUAL : 여러 ROWID 집합을 사용 중복을 없애고 공통 ROWID 사용
2.CONNECT BY : CONNECT BY 쿼리에 대해 계층 순서로 행을 반환
3.CONCATENATION : 여러 행 세트의 UNION ALL을 수행 -> UNION
4.COUNT : 선택된 행 수를 계산
1)STOPKEY : WHERE에서 ROWNUM 조건에 의해 리턴되는 행 수를 제한 한 계산 처리
5.FILTER : 행 세트에서 조건에 부합되는 것만을 얻음
6.FIRST ROW : 질의 결과의 첫번재 행만 가져오기
7.FOR UPDATE : FOR UPDATE절에 의한 행 잠금 처리
8.HASH
1)GROUP BY : 해시하여 행 집합을 그룹화, HASH JOIN과는 별개
2)UNIQUE : 해시하여 행 세트의 중복을 제거 처리
9.INLIST ITERATOR : IN 목록 조건의 각각의 값에 대한 후속 작업을 반복
10.CONNECT BY : CONNECT BY 쿼리에 대해 계층 순서로 행을 반환
11.REMOTE : 원격 데이터베이스에서 데이터를 검색
12.SEQUENCE : 순서 값의 액세스를 따른 처리
13.SORT
1)AGGREGATE : 선택한 행 집합으로 그룹화하고 집계 된 행 세트에
그룹 함수를 적용한 결과의 취득(결과는 한줄로)
2)UNIQUE : 행 집합을 정렬하고 중복을 제거
3)GROUP BY : GROUP BY 절에 의한 것. 행 세트의 그룹화를 위한 전처리로 정렬 => HASH GROUP BY
4)JOIN : 병합 전처리 정렬작업
5)ORDER BY : ORDER BY 절에 의한 행 집합의 정렬
14.UNION : 2개의 행 집합의 합집합에서 중복을 없애고 얻을 UNION ALL 처리 => CONCATENATION
파티션 처리에 관한 실행 계획
1.PARTITION : PARTITION_START 열 및 PARTITION_STOP 라인에 의해
지정된 범위의 파티션에 대해 후속 작업을 반복
1)SINGLE : 하나의 파티션에 액세스
2)ITERATOR : 여러 파티션에 액세스
3)ALL : 모든 파티션에 액세스
4)INLIST : IN 목록을 바탕으로 한 파티션 반복자
5)INVALID : 액세스 할 파티션 세트
병렬 처리에 대한 실행 계획
1.PX ITERATOR : (Parallel execuition iterator)
병렬 슬레이브 세트 사이의 블록 또는 청크 범위에 객체 분할
1)BLOCK
2)CHUNK
2.PX COORDINATOR : 병렬 실행 조정자(Query Coordinator)
3.PX PARTITION : 병렬 실행을 위한 PARTITION 조작
4.PX RECEIVE : PX SEND 노드에서 전송되는 분할 된 데이터를 읽음
(이전 DISRIBUTION 열에 표시되어 있던 것)
5.PX SEND : 병렬 세트 간의 배분 방법의 구현
1)QC(RANDOM)
2)HASH
3)RANGE
집합연산에 관한 실행계획
1.MINUS : 2개의 행 세트에서 첫 번째 세트에 있고 두 번재 세트에 없는 행을 검색하며 중복 제거 처리
2.INTERSECTION : 2개의 행 집합에서 중복을 없앰
3.UNION ALL : 2개의 행 세트의 합을 반환 (중복 행 삭제하지 않음)