반응형
Index란 ?
● 인덱스는 데이터베이스 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조를 일컫는다.
● 테이블 내의 1개 혹은 여러 개의 컬럼을 이용하여 생성될 수 있다.
● 인덱스를 저장하는데 필요한 디스크 공간은 보통 테이블을 저장하는 데 필요한 디스크 공간보다 작다.
● 인덱스는 한번 생성되면 오라클에 의해 내부적으로 자동 관리 된다.
> 쉽게 말해서 데이터의 검색 속도를 향상 시키기 위해 사용되며, 포인터를 이용하여 데이터를 랜덤 액세스한다.
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';
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 |