오라클 INDEX, 단일/복합(결합) 인덱스(Single Column/Composite Index)
단일 인덱스는 하나의 칼럼으로 인덱스가 구성된 것이며, 복합 인덱스는 두개 이상의 컬럼으로 인덱스가 생성된 것 입니다.
다음 실습에서 단일컬럼 및 복합 컬럼에 대해 인덱스를 생성해 보겠습니다.
실습
단일 컬럼에 대해 인덱스를 생성하고 딕셔너리 뷰dictionary view에서 생성된 인덱스를 확인합니다.
EMP 테이블의 ename 컬럼에 대해 인덱스를 생성 합니다. |
CREATE INDEX IDX_EMP_ENAME ON EMP(ENAME);
<실행결과>
Index IDX_EMP_ENAME이(가) 생성되었습니다.
USER_INDEXES 뷰는 사용자가 생성한 인덱스 정보를 제공하는 딕셔너리 뷰 입니다.
생성된 인덱스를 확인 합니다. |
SELECT TABLE_NAME, INDEX_NAME
FROM USER_INDEXES
WHERE TABLE_NAME = 'EMP';
<실행결과>
| TABLE_NAME | INDEX_NAME |
1 | EMP | PK_EMP |
2 | EMP | IDX_EMP_ENAME |
CREATE INDEX로 ename 컬럼에 하나의 인덱스를 생성했는데 왜 2건이 조회될까요? 왜냐하면 EMP 테이블을 생성할 때 empno 컬럼을 기본키primary key로 지정하고 기본키 이름을 PK_EMP 라고 지정을 해서 그 이름으로 인덱스를 생성한 것 입니다. 오라클에서 테이블의 컬럼에 대해 기본키를 지정하면 NOT NULL + UNIQUE 제약조건이 걸리고 별도의 영역에 해당 컬럼을 순서대로 정렬해서 인덱스를 생성한다는 것을 다시 한번 상기해 주세요.
실습
2개 이상의 복합 컬럼에 대해 인덱스를 생성하고 딕셔너리 뷰에서 생성된 인덱스를 확인합니다.
EMP 테이블의 ename, sal 컬럼에 대해 인덱스를 생성 합니다. |
CREATE INDEX IDX_EMP_ENAME_SAL ON EMP(ENAME, SAL);
<실행결과>
Index IDX_EMP_ENAME_SAL이(가) 생성되었습니다.
생성된 인덱스를 확인 합니다. |
SELECT TABLE_NAME, INDEX_NAME
FROM USER_INDEXES
WHERE TABLE_NAME = 'EMP';
<실행결과>
| TABLE_NAME | INDEX_NAME |
1 | EMP | PK_EMP |
2 | EMP | IDX_EMP_ENAME |
3 | EMP | IDX_EMP_ENAME_SAL |
#오라클인덱스, #인덱스, #인덱스란, #인덱스종류, #ORACLE, #ORACLE인덱스