2021년 11월 14일 일요일

오라클 INDEX, 단일/복합(결합) 인덱스(Single Column/Composite Index)

 

오라클 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인덱스

댓글 없음:

댓글 쓰기

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...