새로쓴 대용량 데이터베이스솔루션 1 (2011년)
부분범위처리의 개념 0 0 99,999+

by 구루비스터디 부분범위처리 Partial Range Scan [2013.09.11]


부분범위 처리(Partial range scan)


운반단위(Array size)까지만 먼저 처리하여 그 결과를 추출시킨 후 다음 작업을 계속하겠다는 사용자의 요구가 있을 때까지 잠정적으로 수행을 멈추는 처리방식을 말함.


DBMS나 개발 Tool에 따라 이러한 기능을 제공하지 못하는 것들도 있다





부분 범위 예시
  사용 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

.
.
.



부분범위 처리의 개념


전체범위처리 ( 주어진 조건의 범위가 좁은 경우는 문제가 없으나 넓은 경우는 빠른 수행속도를 기대하기 어려움)
  • 1. 드라이빙 조건을 만족하는 범위를 모두 스캔
  • 2. 체크조건 검증한 후 성공한 건에 대해 임시 저장공간에 저장
  • 3. 저장이 완료되면 필요한 2차 가공을 한 후 운반단위만큼 추출시키고 다음 요구가 있을 때까지 일단 멈춤


부분범위처리 ( 처리할 범위가 아무리 넓다고 하더라도 그 범위 중의 일부만 처리)
  • 1. 드라이빙 조건을 만족하는 범위를 차례로 스캔함
  • 2. 체크조건을 검증하여 성공한 건을 바로 운반단위로 보냄
  • 3. 운반단위가 채원지면 수행을 멈추고 결과를 추출


공통점
  • 항상 운반단위만 채워지면 일단은 멈춘다.
  • 운반단위만큼만 추출되었다고 그것이 부분범위 처리를 한 것이라고 단정지어서는 안된다.


전체범위 처리를 하는 부분은 전 영역일 수도 있고 특정한 영역에 국한 될 수도 있다.


전체범위
  • SORT 실행계획, VIEW 실행계획, Sort Merge 조인, HASH JOIN( 인-메모리 해쉬조인 아닐때)


부분범위
  • HASH JOIN(인-메모리 해쉬조인)
  • SQL_TRACE에서 Execute나 Fetch라인에 있는 'Query'나 'Disk', 'Current'를 확인하여 전체 테이블의 블록 수보다 훨씬 적을때
"구루비 데이터베이스 스터디모임" 에서 2011년에 "새로쓴 대용량 데이터베이스 솔루션1" 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/2618

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입