Oracle/index

index invisible

pbj1102 2022. 1. 24. 14:55
반응형

*INVISIBLE 이란
인덱스를 그대로 유지하되 실행계획에서는 반영을 하지 않음.

장점 :  인덱스를 DROP 하기 전 EXECUTION PLAN 의 변화를 미리 TEST 가능
APP 단의 영향을 주지 않고 특정 APP 단에서만 TEMPORARY 하게 INDEX 사용 가능.

주의 
OPTIMIZER_USE_INVISIBLE_INDEXES 파라미터가 TURE 로 되어 있으면 INVISIBLE 상태여도 실행 계획에 반영함.
SELECT NAME, VALUE, DISPLAY_VALUE FROM V$PARAMETER
WHERE NAME LIKE '%invisible%'

운영 중 파리미터 변경 가능
optimizer_use_invisible_indexes = false    => invisible 인덱스 사용안함
optimizer_use_invisible_indexes = true    => invisible 인덱스 사용함


INVISIBLE 

CREATE INDEX THUNDERMAIL.PART_FILEIMPORT_IDX02
ON THUNDERMAIL.TM6_PART_FILEIMPORT (PARTDATE)
TABLESPACE HPC_MAIL_IDX
INVISIBLE

생성 후
인덱스 사용 정의를 함

alter session set 
optimizer_use_invisible_indexes=true; 

 /*+ use_invisible_indexes */

쿼리에 해당 인덱스 힌트 줘서 실행


ALTER INDEX THUNDERMAIL.PART_FILEIMPORT_IDX02 VISIBLE --|| INVISIBLE;

반응형

'Oracle > index' 카테고리의 다른 글

인덱스 분포도  (0) 2022.01.24
index frag_blocks check  (0) 2022.01.24
partition global index 추출  (0) 2022.01.24
index monitoring  (0) 2022.01.24
index(인덱스)  (0) 2022.01.24