03 марта 2013

Быстрая перестройка UNUSABLE INDEX

Это простой запрос, который составляет скрипт для перестройки UNUSABLE индексов.
Наличие таких индексов может являться причиной падения производительности, если параметр БД SKIP_UNUSABLE_INDEXES установлен в TRUE. В этом случае БД не генерирует ошибку при попытке использования битого индекса и пробует обходиться без него -- или использует другой индекс (если такой есть), или TABLE FULL SCAN

Проверить его значение можно в SQL*PLUS
SQL> show parameter unusable

Выполните скрипт ниже в TOAD или SQL Navigator, в результате будет одна колонка со списком команд alter index ***** rebuild


select 'alter index '||OWNER||'.'||INDEX_NAME||' rebuild;' as TOAD_CMD from DBA_INDEXES a
where INDEX_TYPE in ('NORMAL', 'BITMAP', 'FUNCTION-BASED NORMAL') and PARTITIONED = 'NO' and STATUS <> 'VALID'
union all
select 'alter index '||b.INDEX_OWNER||'.'||b.INDEX_NAME||' rebuild partition '||b.PARTITION_NAME||';' as TOAD_CMD
from DBA_INDEXES a, DBA_IND_PARTITIONS b
where a.OWNER = b.INDEX_OWNER and a.INDEX_NAME = b.INDEX_NAME and a.PARTITIONED = 'YES' and a.INDEX_TYPE in ('NORMAL', 'BITMAP', 'FUNCTION-BASED NORMAL') and b.STATUS = 'UNUSABLE';



Комментариев нет:

Отправить комментарий