by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

1.1. 부분범위처리의 개념

Version 11 by 이창헌
on 9월 17, 2011 20:14.


compared with
Current by 이창헌
on 9월 17, 2011 20:15.


 
Key
These lines were removed. This word was removed.
These lines were added. This word was added.

View page history


There are 1 changes. View first change.

 h2. 부분범위 처리(Partial range scan)
 h4. 운반단위(Array size)까지만 먼저 처리하여 그 결과를 추출시킨 후 다음 작업을 계속하겠다는 사용자의 요구가 있을 때까지 잠정적으로 수행을 멈추는 처리방식을 말함.
 h4.(DBMS나 개발 Tool에 따라 이러한 기능을 제공하지 못하는 것들도 있다)
  
 {code:sql}
  
  
 부분 범위 예시
  사용 Tool : SQLPLUS
  옵션 : arraysize, pause
  
 SQL> show arraysize
 arraysize 15
 SQL> show pause
 PAUSE는 OFF
 SQL> set arraysize 5
 SQL> set pause on
 SQL> show arraysize
 arraysize 5
 SQL> show pause
 PAUSE는 "로 ON 되고 지정되었습니다"
  
  
 SQL> select * from scott.emp;
  
 enter 입력
  
  EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
 ---------- ---------- --------- ---------- -------- ---------- ---------- ----------
  7369 SMITH CLERK 7902 80/12/17 800 20
  7499 ALLEN SALESMAN 7698 81/02/20 1600 300 30
  7521 WARD SALESMAN 7698 81/02/22 1250 500 30
  
  
 enter 입력
  
  EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
 ---------- ---------- --------- ---------- -------- ---------- ---------- ----------
  
  7566 JONES MANAGER 7839 81/04/02 2975 20
  7654 MARTIN SALESMAN 7698 81/09/28 1250 1400 30
  7698 BLAKE MANAGER 7839 81/05/01 2850 30
  
 .
 .
 .
  
 {code}
  
  
 h3. 1.1 부분범위 처리의 개념
  
  
 !p409.jpg!
  
  
 {note:title=^^}
  
  
 전체범위처리 ( 주어진 조건의 범위가 좁은 경우는 문제가 없으나 넓은 경우는 빠른 수행속도를 기대하기 어려움)
  1. 드라이빙 조건을 만족하는 범위를 모두 스캔
  2. 체크조건 검증한 후 성공한 건에 대해 임시 저장공간에 저장
  3. 저장이 완료되면 필요한 2차 가공을 한 후 운반단위만큼 추출시키고 다음 요구가 있을 때까지 일단 멈춤
  
 부분범위처리 ( 처리할 범위가 아무리 넓다고 하더라도 그 범위 중의 일부만 처리)
  1. 드라이빙 조건을 만족하는 범위를 차례로 스캔함
  2. 체크조건을 검증하여 성공한 건을 바로 운반단위로 보냄
  3. 운반단위가 채원지면 수행을 멈추고 결과를 추출
  
 {note}
  
  
  
  
 공통점 : 항상 운반단위만 채워지면 일단은 멈춘다.
  -운반단위만큼만 추출되었다고 그것이 부분범위 처리를 한 것이라고 단정지어서는 안된다.
  
  
  
  
  전체범위 처리를 하는 부분은 전 영역일 수도 있고 특정한 영역에 국한 될 수도 있다.
  h3. 전체범위 처리를 하는 부분은 전 영역일 수도 있고 특정한 영역에 국한 될 수도 있다.
  
 !p410.jpg!
  
  
 h3. 전체범위 :
  SORT 실행계획, VIEW 실행계획, Sort Merge 조인, HASH JOIN( 인-메모리 해쉬조인 아닐때)
  
  
  
  
 h3. 부분범위 :
  HASH JOIN(인-메모리 해쉬조인)
  SQL_TRACE에서 Execute나 Fetch라인에 있는 'Query'나 'Disk', 'Current'를 확인하여 전체 테이블의 블록 수보다 훨씬 적을때
  
  
  
 h2. 문서에 대하여
  
 * 최초작성자 : [이창헌||이창헌]
 * 최초작성일 : 2011년 7월 30일
 * 수정작성일 : 2011년 7월 30일
 * 이 문서는 [오라클클럽|http://www.gurubee.net] 대용량 데이터베이스 스터디 모임에서 작성하였습니다.
 * {color:blue}{*}이 문서의 내용은 (주)엔코아컨설팅에서 출간한 '새로 쓴, 대용량 데이터 베이스 솔루션'을 참고하였습니다.*{color}