테이블에서 원하는 데이터를 빠르게 검색하기 위해 사용하는 데이터 구조이다. 인덱스는 테이블과 같이 독립적인 스키마 객체이기 때문에 인덱스를 생성, 변경, 제거, 저장할 수 있다.
인덱스의 종류는 다음과 같다.
인덱스 | 설명 |
---|---|
단일 컬럼 인덱스(Single Index) | 하나의 컬럼으로 만든 인덱스이다. |
복합 인덱스(Concanated Index) | 하나 이상의 컬럼으로 만든 인덱스이다. |
유일 인덱스(Unique Index) | 테이블에서 유일한 값을 갖는 컬럼으로 만든 인덱스이다. |
비유일 인덱스(Non-Unique Index) | 테이블에서 중복된 값을 갖는 컬럼으로 만든 인덱스이다. |
인덱스를 생성하기 위해서는 CREATE INDEX 문을 사용해야 한다.
다음은 인덱스를 생성하는 방법이다.
CREATE [Unique] INDEX index_name ON [schema.]table (column[ASC|DESC][,column]) [Tablespace tablespace_name] [Initrans integer];
다음은 인덱스를 생성하는 예이다.
CREATE INDEX EMP_FK ON EMP (DEPTNO);
인덱스를 삭제하기 위해서는 DROP INDEX 문을 사용해야 한다.
인덱스는 테이블과 같이 독립적인 스키마 객체이기 때문에 삭제해도 테이블의 데이터에는 영향을 미치지 않는다. 단, 인덱스를 삭제하면 해당 컬럼의 데이터를 조회할 때 이전과는 다르게 조회 속도가 느려질 수 있다.
다음은 인덱스를 삭제하는 예이다.
DROP INDEX EMP_FK;
Tibero RDBMS에서는 인덱스의 기본 구조로 B-트리를 제공한다. 이를 이용하여 단일 키 검색(single key search), 범위 검색(range search), 복합 키 검색(composite key search)을 수행할 수 있다.
인덱스를 이용하여 테이블의 로우를 검색하는 방법은 다음과 같다.
인덱스를 효율적으로 관리하기 위해서는 다음과 같이 해야한다.
Tibero RDBMS에서는 인덱스의 정보를 제공하기 위해 다음 표에 나열된 정적 뷰를 제공하고 있다. DBA나 일반 사용자 모두 사용할 수 있다.
정적 뷰 | 설명 |
---|---|
DBA_INDEXES | Tibero RDBMS 내의 모든 인덱스의 정보를 조회하는 뷰이다. |
USER_INDEXES | 현재 사용자에 속한 인덱스의 정보를 조회하는 뷰이다. |
ALL_INDEXES | 사용자가 접근 가능한 인덱스의 정보를 조회하는 뷰이다. |
DBA_IDX_COLUMNS | Tibero RDBMS 내의 모든 인덱스에 적용된 컬럼의 정보를 조회하는 뷰이다. |
USER_IDX_COLUMNS | 현재 사용자에 속한 인덱스에 적용된 컬럼의 정보를 조회하는 뷰이다. |
ALL_IDX_COLUMNS | 사용자가 접근 가능한 인덱스에 적용된 컬럼의 정보를 조회하는 뷰이다. |
- 강좌 URL : http://www.gurubee.net/lecture/2084
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.