반응형
SMALL
- 인덱스를 저장하는 단위는 블록. 인덱스는 지정된 컬럼의 값과 데이터의 원본을 찾아갈 수 있는 주소(ROWID)로 구성
- 인덱스 구성할 때 컬럼수와 데이터 사이즈마다 인덱스 블록에 저장되는 건수는 다름
- 오라클에서는 컬럼이 NULL 인경우 인덱스 생성하지 않음
(실제 데이터가 모두 NULL이 아니어도 해당 컬럼이 NULL을 허용하는 경우 다른 실행계획이 나올 수 있음)
- 복합인덱스라면 모든 컬럼이 NULL이 아니면 인덱스는 생성됨
왜? 인덱스 활용을 못하고 TABLE FULL 스캔한 이유는 컬럼에 NOT NULL이 아니면 오라클은 컬럼에 NULL이 있다고 판단
인덱스 컬럼에 NULL 데이터가 있으면 인덱스 이용해 전체 데이터를 가져올수 없다고 판단하여 인덱스로 정렬을 대신하지 못함.
컬럼을 NOT NULL로 변경하기 힘들면 아래와 같이 수행해줘야 인덱스 활용가능. 추가적으로 SORT ORDER BY 연산도 없어짐
※출처 오라클튜닝에센셜정리
728x90
'DB 관리 TIP' 카테고리의 다른 글
[ORACLE]인덱스 스캔 방식 (0) | 2021.07.05 |
---|---|
[ORACLE] ROWID 특징 (0) | 2021.07.04 |
[ORACLE]NL조인 특징 (0) | 2021.07.02 |
[ORACLE] INDEX 튜닝정리 I/O 효율 (0) | 2021.06.21 |
[SPLEX]이중화 대상 테이블 추가 쉐어플렉스 (0) | 2021.06.17 |