Oracle

Oracle Index

coococoo 2023. 9. 19. 17:56
반응형

Index란 ? 

● 인덱스는 데이터베이스 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조를 일컫는다.

테이블 내의 1개 혹은 여러 개의 컬럼을 이용하여 생성될 수 있다.

인덱스를 저장하는데 필요한 디스크 공간은 보통 테이블을 저장하는 데 필요한 디스크 공간보다 작다.

● 인덱스는 한번 생성되면 오라클에 의해 내부적으로 자동 관리 된다.

> 쉽게 말해서 데이터의 검색 속도를 향상 시키기 위해 사용되며, 포인터를 이용하여 데이터를 랜덤 액세스한다.

 

Index 구조

1) 인덱스 사용 목적

- 일부 SQL 쿼리 성능 향상

- 테이블의 행에 직접 빠르게 접속 가능

- 인덱스 경로를 사용한 신속한 자료 검색

- DB의 모든 블록을 전부 안읽고 블록 주소를 찾아 해당 블록만 메모리에 복사함

> 테이블이 수정/삭제/입력이 자주 발생해서 값이 자주 변경되면 인덱스 사용이 적합하지 않음 (테이블이 수정/입력/삭제 될 때 인덱스도 같이 갱신 시켜줘야 하기 때문이다)

 

2) 인덱스 생성

● 단일 인덱스 : 하나의 칼럼으로 구성 된 인덱스

● 복합 인덱스 : 두개 이상의 칼럼으로 구성 된 인덱스

 

EX) EMP 테이블 ENAME 칼럼에 단일 인덱스를 생성

# 기본형식
CREATE INDEX index_name ON table_name(columns[expr],column[expr]....)

# EMP 테이블 ENAME 칼럼에 단일 인덱스 생성
CREATE INDEX EMP_ENAME_IDX on EMP(ENAME);

생성된 인덱스 조회

SELECT * FROM user_ind_columns
WHERE TABLE_NAME = 'EMP';

EMP 테이블 인덱스 조회

EX) EMP 테이블에서 ENAME, SAL 복합 인덱스 구성

# EMP 테이블 ENAME, SAL 복합 인덱스 생성
CREATE INDEX EMP_ENAME_SAL_IDX ON EMP(ENAME, SAL);

생성된 인덱스 조회

SELECT * FROM user_ind_columns
WHERE TABLE_NAME = 'EMP';

 

3) 인덱스 수정

- 인덱스 자체는 수정하지 못하고 이름만 수정 가능함

# 기본형식
ALTER INDEX index_name RENAME TO 바꿀인덱스이름;

# EMP_ENAME_IDX를 EMP_IDX1로 변경
ALTER INDEX EMP_ENAME_IDX RENAME EMP_IDX1

 

4) 인덱스 삭제

# 기본형식
DROP INDEX index_name;

# EMP_IDX1 삭제
DROP INDEX EMP_IDX1;

 

 

 

 

반응형

 

반응형

'Oracle' 카테고리의 다른 글

Oracle Partition 테이블 종류와 개념  (0) 2023.10.11
Oracle ROWID  (0) 2023.09.20
NL Join / Sort Merge Join / Hash Join  (0) 2023.09.19
SQL 트레이스  (0) 2023.09.13
Voting Disk , OCR  (0) 2023.09.06