320x100
320x100

인덱스 (정렬)

- 지정한 컬럼들을 기준으로 메모리 영역에 일종의 목차를 생성시키는 것

 : 빠른 데이터 조회를 위해 목차를 만드는 것

- ROWID

 : 데이터가 저장되어 있는 주소

- B-TREE 인덱스

 : 데이터의 갯수가 많고 데이터 중복이 적은 경우 사용

 : root block (branch 블록의 정보)

 : branch block (leaf 블록의 정보)

 : leaf block (데이터를 저장하고 있는 데이터 블록들의 주소)

 

 

 

UNIQUE INDEX

- 중복을 허용하지 않는 인덱스

- create unique index 인덱스명 on 테이블이름 (컬럼명);

 : 컬럼에 대한 인덱스 생성

 

 

NON-UNIQUE INDEX

- 중복을 허용하는 인덱스

- create index 인덱스명 on 테이블명(컬럼명);

 

 

Function Based Index (FBI)

- 함수 기반 인덱스

- create index 인덱스명 on 테이블(컬럼+숫자)

 : 테이블 내 컬럼들을 가공한 값으로 생성한 인덱스

 

 

DESCENDING INDEX 

- 내림차순 인덱스

- create index 인덱스명 on 테이블(컬럼 desc);

 

 

Composite index 

- 결합 인덱스

- create index 인덱스명 on 테이블 (컬럼1, 컬럼2)

 

 

BIT MAP INDEX

- 데이터의 갯수가 적고 중복이 많은 경우 사용

- create bitmap index 인덱스명 on 테이블(컬럼)

 

 

인덱스의 취약점

- Index Split

 : 신규 데이터 삽입으로 기존 index공간에 자리가 없는 경우 블록을 나누어 데이터를 삽입하게 되면서

   블록이 나뉘어 지는 현상

- Delete

 : 테이블의 데이터가 삭제되어도 index 데이터는 지워지지 않음

 : index rebuild 필요

- Update

 : update연산을 위해 delete + insert 연산 수행 필요

 

 

인덱스 조회

- select table_name, column_name, index_name from user_ind_columns

  where table_name='테이블명(대문자)';

 

 

인덱스 모니터링

- alter index 인덱스명 monitoring / nomonitoring usage

 : 인덱스의 사용여부 확인

 

 

index_rebuild

- 잦은 DML 작업으로 인한 인덱스의 밸런싱 상태 저하 해결

- alter index 인덱스명 rebuild;

- analyze index 인덱스명 validate structure;

 

 

Invisible index

- 인덱스를 삭제하기 전에 사용안함 상태로 만들어 테스트 할 수 있는 기능

- alter index 인덱스명 invisible / visible;

 

 

300x250
728x90