[Oracle] 오라클 인덱스(Index) 수정 방법 (컬럼 추가, 변경)
- 데이터베이스/오라클
- 2021. 6. 24.
오라클에서 인덱스를 수정하기 위해서는 ALTER INDEX 문을 사용하면 된다. ALTER INDEX 문을 사용하여 인덱스명 변경(RENAME), 비활성화(UNUSABLE), 재구축(REBUILD)을 할 수 있다. 그러나 인덱스 컬럼을 변경하기 위해서는 인덱스를 삭제 후 다시 생성하는 방법을 사용해야 한다.
인덱스 수정
인덱스 컬럼 추가 및 변경
-- 인덱스 삭제
DROP INDEX emp_ix01;
-- 인덱스 재생성
CREATE INDEX emp_ix01 ON emp(hiredate, job);
오라클은 ALTER INDEX 문을 사용해서 인덱스 컬럼을 변경하지 못한다. 인덱스의 컬럼을 추가, 제거 또는 순서를 변경하기 위해서는 인덱스를 삭제(DROP)하고 다시 생성(CREATE) 해야 한다.
인덱스명 변경(RENAME)
ALTER INDEX emp_ix01 RENAME TO emp_ix01_new
인덱스명 변경은 ALTER INDEX 문을 사용해서 쉽게 변경이 가능하다.
ALTER INDEX [스키마명.]인덱스명 RENAME TO 변경인덱스명 |
인덱스 리빌드(REBUILD)
ALTER INDEX emp_ix01 REBUILD
인덱스의 속도가 저하되었거나 인덱스가 깨졌을 경우 리빌드를 사용하여 인덱스를 재구축한다.
ALTER INDEX [스키마명.]인덱스명 REBUILD [ONLINE] [TABLESPACE 테이블스페이스명] |
ONLINE: 온라인 상태에서 인덱스 리빌드 진행 (리빌드 중에 테이블 DML 작업 가능, 사용시 주의)
TABLESPACE: 테이블스페이스를 변경 시 사용
인덱스 비활성화(UNUSABLE)
ALTER INDEX emp_ix01 UNUSABLE
UNUSABLE 절을 사용하여 인덱스를 비활성화 시킨다. UNUSABLE 상태가 되면 인덱스는 사용이 불가능하며 DML 작업이 수행되어도 갱신되지 않는다.
인덱스를 다시 활성화 하기 위해서는 "ALTER INDEX emp_ix01 REBUILD" 리빌드를 사용하면 된다.