본문 바로가기
오라클/오라클 튜닝

실행계획 용어 정리

by 카리3 2021. 12. 3.

실행계획 용어 정리

 

 

결합 처리에 관한 실행 계획

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개의 행 세트의 합을 반환 (중복 행 삭제하지 않음)

'오라클 > 오라클 튜닝' 카테고리의 다른 글

오라클 HINT  (0) 2021.12.04
인덱스 개요  (0) 2021.12.04
실행계획 읽는 순서  (0) 2021.12.03
SQL 처리 과정  (0) 2021.12.03
오라클 DB 구조  (0) 2021.12.03