제1장. 부분범위처리(Partial range scan)
2010.12.01 06:37
1.1 부분범위 처리의 개념
ㅁ 부분범위 처리란 조건을 만족하는 전체범위를 처리하는 것이 아니라 일단 운반단위(Array Size) 까지만 처리 하여
추출하는 처리방식.
ㅁ 처리 범위가 넓더라도 빠른 속도를 얻도록 하기 위함.
ㅁ 일부분만 처리하고서도 Optimizer의 특성을 이용하여 정확한 결과 도출.
ㅁ 부분범위 처리의 개념 -조건에 맞는 Data가 많을 수록 Array Size는 빨리 찰 확률이 높다. -Array Size에 빨리 차기만 하면 DB는 바로 보내준다.
ㅁ 전체범위 처리 : 조건이 Table의 전체를 읽어야만 결과가 나옴 ㅁ 부분범위 처리 : 조건이 일부분만 Access하고도 운반단위로 넘길수 있음.
*실행계획에서 Sort가 나오면 전체범위 처리를 함. 1.2 부분범위 처리의 적용원칙
논리적으로 보았을 때 반드시 전체범위를 읽어서 가공을 해야만 하는 경우를 제외한 모든 형태에서 가능합니다.
(Index의 Access 순서와 Order by 순서가 동일 함으로 Optimizer는 Order by를 무시하고 Index로 처리하여 결과를 부분범위 Return)
Union : 중복을 제거 하므로 전체범위 처리 UnionAll : 중복을 확인 하지 않으므로 부분범위 처리
1.2.2. Optimizer Mode에 따른 부분범위처리
Select ord_dept,ordqty From order Where ord_dept > ‘1000’;
논리적으로 부분범위 처리가 가능하나 Optimizer Goal이 ‘All_Rows’라면?
1.3. 부분범위처리의 수행속도 향상원리 Ⅰ
Select * from order; ->부분범위 처리 되므로 빠름
Select * from order Order by item; ->정렬작업을 위해 전체 범위를 모두 처리함으로 느림.
Item에 Index가 있다면? Select * from order Where item >’’;
Select /*+ index(order item_index) */ * From order Where item > ’’;
1.3. 부분범위처리의 수행속도 향상원리 Ⅱ
Select * From order Where ordno between 1 and 1000 And custno like ‘DN%’;
조건: Order Table에는 Ordno 조건을 만족하는 Row가 1000건 Custno를 만족하는 Row가 10건이고 각각 별도의 Index가 생성되어 있다.
-운반단위를 채우기 위해서는 최악의 경우 1000건을 다 뒤져봐야 알 수 있다. page 421 그림 2) Custno Index를 사용한 경우 로우가 10건이므로 10회만 처리하면 됨. 만족하는 조건도 1000건으로 많음. page 422 그림
1.3. 부분범위처리의 수행속도 향상원리 Ⅲ
Ordno 실행계획
Custno 실행계획
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
15 | 3.2.1. 스캔(Scan)의 기본유형 [1] | pranludi | 2010.10.19 | 11080 |
14 | 3.2.2. 데이터 연결을 위한 실행계획 | supersally | 2010.10.19 | 10175 |
13 | 3.2.3. 연산 방식에 따른 실행계획 | 노랑배 | 2010.10.18 | 10901 |
12 | 3.1. SQL과 옵티마이져 (1/3) (3.1.1 ~ 3.1.2.2) | 실천하자 | 2010.10.13 | 6813 |
11 | 3.1. SQL과 옵티마이져(1/3) (3.1.1 ~ 3.1.2.2) | supersally | 2010.10.12 | 5879 |
10 | 3.1. SQL과 옵티마이져 (3/3) (3.1.3 ~ 3.1.5) [2] | 실천하자 | 2010.10.08 | 26961 |
9 | 3.1. SQL과 옵티마이져 (2/3) (3.1.2.3 ~ 3.1.2.5) | 노랑배 | 2010.10.06 | 13724 |
8 | 2.1. B-tree 인덱스 | 김진희 | 2010.10.04 | 13021 |
7 | 제2장. 인덱스의 유형과 특징 | 휘휘 | 2010.10.04 | 7272 |
6 | 2.2. 비트맵(Bitmap) 인덱스 | 실천하자 | 2010.10.04 | 20935 |
5 | 2.3. 함수기반 인덱스(FBI, Function-Based Index) | pranludi | 2010.10.01 | 18681 |
4 | 1.1. 테이블과 인덱스의 분리형 | 실천하자 | 2010.09.13 | 13908 |
3 | 1.2. 인덱스 일체형 테이블(Index-Organized Table) | 실천하자 | 2010.09.13 | 9056 |
2 | 1.3. 클러스터링 테이블 | 노랑배 | 2010.09.09 | 9229 |
1 | Front Page | 운영자 | 2010.09.06 | 164254 |