2007년 11월 17일 토요일

Data Access Pattern - Full Table Scan

1.발생규칙

-아무런 조건 없이 Table을 읽게 한 경우

-인덱스가 걸려있지 않은 컬럼에 대해서 조건을주고 Table을 읽게 한 경우

-인덱스가 걸려있는 컬럼에 조건을 부여했을지라도 Optimizer가 Full Table Scan이 유리하다고 판단한 경우

2.Access 방식

-테이블의 첫 Row가 들어있는 Block부터 HWM(High Water Mark)까지 읽는다

-한번에 DB_FILE_MULTIBLOCK_READ_COUNT에서 정한 크기 만큼 읽는다 .

-DB_FILE_MULTIBLOCK_READ_COUNT가 16이면 한번 i/o 할때 16 block 씩 scan 한다. (MultiBlock I/O)

-Parallel로 수행 가능하다

3. 적용범위

-10만건(평균적으로) 이상을 Read 할때 --> 인덱스를 경유하면 더느림

-주로 OLAP/DSS 시스템에서 사용

-OLTP 시스템의 야간 Batch 작업

4.Hint

- /*+ full(테이블명 또는 테이블별칭) */

-plan 상에서의 full scan
select * from emp;
-------------------------------------------------
SELECT STATEMENT GOAL: CHOOSE
TABLE ACCESS (FULL) OF 'EMP'