새로쓴 대용량 데이터베이스솔루션 1 (2008년)
부분범위처리의 적용원칙 0 0 4,474

by 구루비 부분범위처리 Partial Range Scan [2009.04.30]


1.2. 부분범위처리의 적용원칙

1.2.1. 부분범위 처리의 자격



1) SELECT SUM(ordqty)                  2) SELECT ord_dept, COUNT(*)            3) SELECT ord_date, ordqty * 1000    
   FROM  order                            FROM order                              FROM order
   WHERE ord_date like '200512%'          WHERE ord_date  like '200512%';          WHERE ord_date like '200512%'
   GROUP BY ord_dept;                                                             ORDER BY ord_date;

=> SELECT - List 에 SUM, COUNT , ORDER BY  가 사용되어서  부분범위 처리가 불가능하게된다.

 - 전체 범위 액세스
    SELECT deptno, empno
   FROM emp1
   WHERE sal > 10000
   UNION ALL
   SELECT deptno, empno
   FROM emp2
   WHERE hiredate between  '01-JAN-05'  and  sysdate;

1.2.2. 옵티마이져 모드에 따른 부분범위처리

  • 규칙기준, 비용기준(FIRST_ROWS) => 부분범위처리
  • 비용기준(ALL_ROWS) => 전체범위처리

예) 
SELECT ord_dept, ordqty
FROM order
WHERE ord_dept > '10000';

=> 논리적으로 볼때 보분범위 처리가 가능하다, 그러나 이 SQL을수행하는 옵티마이져 목표가 'ALL_ROWS'라면 실행계획 수립에서 차이가 날수있다.

=> 'ALL_ROWS'로 했을 때 이러한 실행계획이 나타나는 것은 이 방식의 최적화는 전체범위를 모두 처리했을 때의 최적화
     'FIRST_ROWS' 는 부분범위 최적화를 추구한다.

- 시스템이 온라인 위주로 처리된다면 옵티마이져의 목표를 'FIRST_ROWS'로 지정하는것이좋다.



문서에 대하여

  • 이 문서는 오라클클럽 대용량 데이터베이스 스터디 모임에서 작성하였습니다.
  • {*}이 문서의 내용은 이화식님의 새로쓴 대용량 데이터베이스 솔루션을 참고했습니다.*
  • 이 문서를 다른 블로그나 홈페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^\^
"구루비 데이터베이스 스터디모임" 에서 2008년에 "새로쓴 대용량 데이터베이스 솔루션1" 도서를 스터디하면서 정리한 내용 입니다.

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

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

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

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