오라클 INVISIBLE INDEX
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 인비저블 인덱스 INVISIBLE INDEX[편집]
android * 인덱스를 실제 생성/삭제하기 전에 "사용 안함" 상태로 만들어서 테스트해 볼 수 있는 기능을 제공하는 인덱스이다.(11g New Feature)
- 인덱스가 많은 경우 DML문장에 나쁜 영향을 주기 때문에 사용하지 않는 인덱스는 삭제해 주어야 한다.
- 문제는 해당 인덱스를 삭제하려고 했을 때, 정말 사용하는지 사용하지 않는 것인지를 정확하게 알아야 한다.
- 모니터링 기간이 잘못 되었다든지 해서 인덱스를 삭제했는데, 나중에 생각지도 못했던 부분에서 문제가 발생할 수 있다.
1.1 인비저블 인덱스 조회[편집]
select VISIBILITY
from dba_indexes
where index_name='IX_DBCAFE_01'
and owner='DBCAFE';
1.2 인비저블 인덱스 생성[편집]
- Index를 Invisible Index로 생성
- Invisible Index는 옵티마이져가 PLAN을 결정할때 관여하지 않는 인덱스임
- (주의) 인덱스가 REBUILD 되면 VISIBLE INDEX로 변경된다.
CREATE INDEX EMP.IDX_TEST ON EMP.TB_TEST(COL1,COL2,COL3)
PCTFREE 10
INITRANS 5
PARALLEL 8 NOLOGGING
TABLESPACE TS_IDX
INVISABLE -- 인비저블 인덱스
ONLINE -- DML 발생시에도 테이블에 LOCK이 발생되지 않음.
;
1.3 VISIBLE 인덱스로 변경[편집]
ALTER INDEX EMP.IX_TEST VISIBLE;
1.4 인비저블 인덱스 사용시 검토사항[편집]
- 테이블에 대한 Acess Path 분석을 통한 영향도 및 타당성 검토를 수행한다.
- index를 만들었을때 DML에 의한 성능저하 요인은?
- index에 의한 효과 대상 SQL은?
- 효과의 영향도는?
- 다음을 SESSION LEVEL로 적용 후 관련 SQL에 대한 모든 PLAN점검을 실행한다.
ALTER SESSION SET optimizer_use_invisible_indexes=TRUE;