본문 바로가기
ORACLE

[SQL] unusable index 확인

by DBA 드굔 2022. 11. 24.
반응형

안녕하세요!

DBA 업무를 하면서 주로 사용하는 쿼리들을 소개해 드리고 있습니다.

오늘은!! Index의 상태를 확인 하는 것 중에서 unusable 상태로 변경된 index를 검색하는 SQL 입니다.

잘 수행 되던 sql이 갑자기 FULL TABLE SCAN 을 하거나 pk index가 unusable 로 변경 된다면 insert 가 되지 않아 대량 장애로 번지게 됩니다.

숙지 하셨다가 필요할때 바로 사용 하면 유용합니다.!

Partition Table unusable index 확인 하기

select 'ALTER INDEX '||INDEX_OWNER||'.'||INDEX_NAME||' REBUILD PARTITION '||PARTITION_NAME||' PARALLEL 8 NOLOGGING;'
from DBA_IND_PARTITIONS
where STATUS='UNUSABLE'
order by 1 desc;

 

Non-partition Table unusable index 확인하기

select 'ALTER INDEX '||OWNER||'.'||INDEX_NAME||' REBUILD PARALLEL 8 NOLOGGING;'
from DBA_INDEXES
where STATUS='UNUSABLE'
order by 1 desc;

 

상황에 따라 Parallel nologging 등은 빼시면 되고 rebuild 한 후에는 꼭 noparallel logging 으로 변경 해주셔야 합니다!!!!

반응형

댓글