2008년 03월 25일
[Oracle] 전체 테이블 스캔
스캔 : 테이블에 있는 모든 로우들을 읽어 내는 방법
최고 수위선 : 사용된 저장 공간의 총합계나 데이터를 넣기 위해 포맷된 영역을 표시하는 것
- 적용 가능한 인덱스의 부재
조건절의 컬럼이 전혀 인덱스에 포함되어 있지 않거나, 결합 인덱스의 선두(Prefix) 컬럼이
존재하지 않을때, 또 인덱스를 가졌지만 가공이 발생하여 인덱스를 사용할 수 없을 때
- 넓은 범위의 데이터 액세스
옵티마이져는 비록 적용 가능한 인덱스가 존재하더라도 처리 범위가 넓어서 전체
테이블보다 스캔이 보다 적은 비용이 든다면 인덱스 스캔 포기
- 소량의 테이블 액세스
초고수위 표시 내에 있는 블록이 DB_FILE_MULTIBLOCK_READ_COUNT 이내에
있다면 전체 테이블 스캔
- 병렬 처리 액세스
병렬 처리는 전체 테이블 스캔을 더욱 효과적으로 수행되게 되므로 옵티마이져는
병렬 처리로 수행되는 실행 계획을 수립할 때는 항상 전체 테이블 스캔
최고 수위선 : 사용된 저장 공간의 총합계나 데이터를 넣기 위해 포맷된 영역을 표시하는 것
- 적용 가능한 인덱스의 부재
조건절의 컬럼이 전혀 인덱스에 포함되어 있지 않거나, 결합 인덱스의 선두(Prefix) 컬럼이
존재하지 않을때, 또 인덱스를 가졌지만 가공이 발생하여 인덱스를 사용할 수 없을 때
- 넓은 범위의 데이터 액세스
옵티마이져는 비록 적용 가능한 인덱스가 존재하더라도 처리 범위가 넓어서 전체
테이블보다 스캔이 보다 적은 비용이 든다면 인덱스 스캔 포기
- 소량의 테이블 액세스
초고수위 표시 내에 있는 블록이 DB_FILE_MULTIBLOCK_READ_COUNT 이내에
있다면 전체 테이블 스캔
- 병렬 처리 액세스
병렬 처리는 전체 테이블 스캔을 더욱 효과적으로 수행되게 되므로 옵티마이져는
병렬 처리로 수행되는 실행 계획을 수립할 때는 항상 전체 테이블 스캔
# by | 2008/03/25 00:31 | Oracle | 트랙백 | 덧글(0)













☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]