사용자 도구

사이트 도구


study:oracle:datadb:3week_1:03

문서의 이전 판입니다!


3.2.3. 연산방식에 따른 실행계획

  • 3.2.3.1. IN-List 탐침 실행계획
    1. BETWEEN = 선분 → RANG SCAN
    2. IN = 점 → EQUAL SCAN
    3. IN-LIST ITERATOR의 특징
      1. COL1 IN (1,2) AND COL2 =10 ⇒ ((COL1=1 AND COL2=10) OR COL1=2 AND COL2=10)
      2. 옵티마이져는 IN을 OR 형태로 변형하여 실행계획을 수립
      3. IN절에 비교값이 하나만 사용될 경우 INLIST ITERATOR 실행계획은 발생되지 않음
  • 3.2.3.2. 연쇄(Concatenation) 실행계획
    1. 연쇄(CONCATENATION)?
      1. ‘OR’가 처리주관 조건의 역할을 하는 경우
      2. ‘OR’로 연결된 서로 다른 컬럼을 사용한 조건을 별도의 실행단위로 분리
      3. 각각의 최적의 액세스 경로를 수립하여 CONCATENATION
      4. 그 외의 경우
      5. 단순 CHECK 조건으로 사용됨
    2. 연쇄(CONCATENATION) 적용하지 말아야 할 경우
      1. 조인의 연결고리가 ‘OR’ 조건을 가질 때 조인의 상대방이 넓은 처리범위를 가질 때
      2. 동일 컬럼의 ‘OR’ 조건 : 이때는 IN-List 탐침이 유리하기 때문이다.
      3. 보다 효율적으로 처리범위를 줄일 수 있는 다른 액세스 경로가 있을 때
      4. ‘OR’ 조건들 중에서 너무 넓은 처리범위를 가진 것들이 존재할 때
  • 3.2.3.3. 원격(Remote) 실행계획
    1. 원격실행계획?
      1. 데이터베이스 링크(DATABASE LINK)를 통한 액세스
      2. 물리적 : 다른 데이터베이스, 논리적 : 같은 데이터베이스로 인식
    2. 옵티마이져의 성향
      1. CBO상황에서 원격 테이블의 통계정보를 고려하여 로컬 테이블의 실행계획을 수립
      2. 원격 테이블의 실행계획을 생성하지는 않음
      3. 수행된 쿼리에 사용된 모든 테이블이 동일한 원격지의 테이블들이라면 전체 쿼리에 대한 결과만 리턴
      4. 실행계획 확인하는 습관이 원격실행계획에서는 반드시 필요함
  • 3.2.3.4. 정렬 처리(Sort Operation)
    1. 해당 쿼리의 추출 로우에 대하여 유일한 집합을 생성하는 실행계획
    2. 서브쿼리의 제공자 역할일 경우 (단, 확인자 역할의 경우 FILTER 형태로 실행계획이 나타남)
    3. DISTINCT 문 사용
  • 3.2.3.5. 합집합 (Union, Union-All) 실행계획
    1. GROUP BY를 하지 않은 상태에서, 전체 대상에 대해 그룹함수로 계산을 할 경우 발생
      1. SUM, COUNT, MIN, MAX, AVG
    2. 일반적인 정렬은 하지 않음
      1. MIN, MAX의 경우 최초 액세스 한 값과 이후 값을 비교하여 작거나/크면 갱신
  • 3.2.3.6. 집합(Intersection) 실행계획
  • 3.2.3.7. 차집합(Minus) 실행계획
  • 3.2.3.8. COUNT(STOPKEY) 실행계획
study/oracle/datadb/3week_1/03.1274245727.txt.gz · 마지막으로 수정됨: 2010/05/19 14:08 저자 gwgwg