Dashboard > СУБД > Home > Oracle, жонглирование индексами > Просмотр
  СУБД Вход | Зарегистрироваться   Вариант для печати.  
  Oracle, жонглирование индексами
Добавил(а) shixaro, последний раз редактировал(а) shixaro Sep 12, 2011
Метки: 

Индексы отвалившиеся по тем или иным причинам (перенос в другой тэблспэйс, жонглирование партиционированной таблицей и т.д.), иногда надо чинить.

Чиним с помощью динамического SQL

begin
 for rec in (
 select owner, index_name
 from dba_indexes 
 where STATUS = 'UNUSABLE' and owner = 'WORK' 
 ) loop
 execute immediate 'alter index '||rec.owner||'.'||rec.index_name||' rebuild';
 end loop;
end;

Для партиционированных индексов это не прокатит, но их тоже чиним

begin
 for rec in (
 select index_owner, index_name, partition_name from dba_ind_partitions where index_owner='WORK' and index_name like 'MYWORKTABLE%'
 ) loop
 execute immediate 'alter index '||rec.index_owner||'.'||rec.index_name||' partition '||rec.partition_name||' rebuild';
 end loop;
end;

Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5 Build:#805 Apr 26, 2007) - Запрос Bug/feature - Связаться с администраторами