partition index 가 Index Unusable (IU) 상태가 되었을 때 그 partition index을 사용 하게 되면 다음과 같은 에러가 발생하게 된다.

 

SQL> SELECT /*+ INDEX(A A_IDX1) */ * FROM SALES A WHERE PROD_ID >= 10000

 

ORA-01502: 인덱스 ‘A_IDX1’ 또는 인덱스 분할영역은 사용할 수 없는 상태이다.

 

이와 같은 에러가 발생시 해당 파티션을 해당 인덱스를 통해서 엑세스 할 수 없게 됨으로

해당 어플리케이션의 수행을 유지 할 수 없는 상황이 발생하게 된다.

물론 인덱스를 사용하지 않고 해당 파티션을 TABLE FULL SCAN 하면 에러가 발생하지 않는다.

 

하지만 옵티마이져가 실행계획 수립 시에 INDEX UNUSABLE 상태 여부를 체크하지 않으므로 해당 인덱스를 사용하는 실행계획이 수립되고

실제 수행 시 오류가 발생하게 됨으로 이미 운용중인 어플리케이션이나 SQL이 정상 수행되지 않는다.

 

이럴 경우에는

 

skip_unusable_indexes = TRUE

 

파라미터를 지정하면

수행 시에 해당 인덱스가 UNUSABLE이면 이를 사용하지 않고 TABLE FULL SCAN 등을 한다.

 

경우에 따라서 유용하게 사용 가능하므로 고려 해 볼 수 있다.

By haisins

오라클 DBA 박용석 입니다. haisins@gmail.com 으로 문의 주세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다