2013-10-24 2 views
1

Когда мы делаем массивные вставки/удаления в производственной базе данных, в качестве меры безопасности, мы всегда перестраиваем индекс. Мне любопытно узнать, дает ли Oracle нам возможность узнать, нужно ли перестроить индекс (т. Е. Если он обновлен)Как определить, нужно ли перестроить индекс oracle

ответ

1

Индексы всегда «обновлены» после регулярных вставок и удалений.

Существуют различные операции, которые сделают индекс непригодным для использования. Например, перемещение таблицы, некоторые виды импорта или намерение сделать индекс непригодным для использования. Необязательные индексы можно найти с инструкцией, подобной приведенной ниже. Фактическое утверждение, вероятно, должно быть более сложным, в зависимости от того, что должно быть сделано .

select owner, index_name, status 
from 
(
    select owner, index_name, status from dba_indexes union all 
    select index_owner, index_name, status from dba_ind_partitions union all 
    select index_owner, index_name, status from dba_ind_subpartitions 
) 
where status not in ('VALID', 'N/A', 'USABLE'); 

Но автоматическое включение всех инвалидов индексов не всегда является хорошей идеей.

Процесс может временно отключить и снова включить индекс; вы не хотите посещать это. Или один раздел может преднамеренно иметь непригодный для использования индекс. Это позволяет архивированным разделам иметь множество индексов, но быстро сохраняет DML в текущем разделе. Или, возможно, уникальное ограничение было отключено, чтобы временно разрешить данные, которые нарушают ограничение.

Не может быть хорошего общего решения этой проблемы. В сложной среде каждый процесс должен очищаться после себя. Разработчику необходимо будет понять эти концепции и оценить каждое изменение.


Если Ваш вопрос действительно о производительности индекса, то это может быть дубликатом this one. Подводя итог: , вы должны просто оставить индексы в покое.

Если вы считаете, что столкнулись с странным случаем, когда необходимы частые перестройки, возможно, понадобится Segment Advisor.

Смежные вопросы