[SQL] Index ORACLE/SQL 2012. 3. 29. 17:33

인덱스는 테이블이나 클러스트 상 쓰여지는 것으로 원하는 레코드를 빠르게 찾기 위한 데이터 주고이다.

이는 조건절이나 조인절에서 주로 자주  쓰이는 것이 대상이 적합하며 테이블 규모가 작거나 자주 바뀌는 경우에는 적합하지 않다.

인덱스의 종류는 다음과 같다.

 

1. BITMAP INDEX - 적은 개수의 특정한 값이 있는 경우 적합하다. 이는 인덱스 구조가 B-TREE 구조임을 감안 할 때 테이블의 크기가 크거나 변경 사항이 잘 없는 경우와 이를 사용하지 않을 경우 적합하다.

CREATE BITMAP INDEX idx_no ON t_table(NO);

 

2. UNIQUE INDEX - 컬럼의 중복을 포함하지 않고 PK와 UNIQUE 조건시 생성된다.

CREATE UNIQUE INDEX idx_no ON t_table(NO);

 

3. NON-UNIQUE INDEX - 컬럼의 중복을 허락하는 데이터를 가질 수 있다.

CREATE INDEX idx_no ON t_table(NO);

 

4. 결합 인덱스 - 여러개의 컬럼에 생성이 가능하며 총 16개까지 가능하다.

CREATE UNIQUE INDEX idx_no ON t_table(NO,NAME,ID);

 

인덱스의 삭제는 DROP을 통하여 하며 데이터사전 정보를 확인하려면 USER_INDEXES를 조회하면 확인이 가능하다.