Full table scan#

반드시 High Water Mark(최고 수위표)까지의 모든 데이터·블록에 액세스 해서 모든 레코드를 읽어들여 지정된 조건에 적합한지 판단. 테이블 액세스 방법 중 가장 기본. 복수의 데이터·블록을 정리해 읽어들이기 때문에 테이블의 대부분의 레코드를 추출하는 경우 효율적

<div class="information"> High Water Mark는 과거에 최고 위치까지 데이터가 삽입된 위치를 나타낸다. 예를 들면, 과거에 100만건의 레코드가 격납되어 현재는 0건이었다고 해도, 100만건의 레코드가 삽입된 것이 있는 데이터·블록까지 모두에게 액세스 한다. </div>

http://www.atmarkit.co.jp/fdb/rensai/orasql02/oracle_sql02_04.gif

ROWID scan#

Oracle에서 가장 빠른 속도로 레코드에 액세스 하는 방법. ROWID란 데이타베이스내의 「어느 데이터·파일의, 몇번째의 데이터·블록중의, 몇번째의 레코드」라는 레코드 위치를 나타내는 Oracle의 내부적인 표현

http://www.atmarkit.co.jp/fdb/rensai/orasql02/oracle_sql02_05.gif

Index scan#

인덱스를 읽어들여 ROWID를 취득해 그 ROWID를 사용해 데이터에 액세스 하는 방법. 인덱스 타입중 가장 자주 사용되는 타입은 B*Tree 인덱스이며 B*Tree 인덱스는 정렬된 인덱스열의 데이터와 대응하는 ROWID를 보관 유지

http://www.atmarkit.co.jp/fdb/rensai/orasql02/oracle_sql02_06.gif

인덱스 스캔은「인덱스 블록의 읽기+데이터·블록」의 읽기가 되기 때문에 테이블로부터 어느 정도 이상의 비율을 추출하는 경우에는 풀 테이블 스캔이 효율적으로 될 가능성이 있는 것에 주의해야 합니다. 일반적으로, 검색하고 싶은 레코드 건수가 레코드 전체의 5~15%정도까지의 경우는 인덱스 스캔이 효율적

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-1) was last changed on 05-Jan-2008 17:02 by DongGukLee