Ручное восстановление индексов

Материал из GedeminWiki
(Различия между версиями)
Перейти к: навигация, поиск
 
Строка 34: Строка 34:
 
   r.rdb$index_inactive > 0   
 
   r.rdb$index_inactive > 0   
 
   AND r.rdb$system_flag IS NULL
 
   AND r.rdb$system_flag IS NULL
 +
 +
[[Category:База данных]]

Версия 16:08, 19 декабря 2008

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

Ручное восстановление индексов

Данные SQL-запросы вернут список запросов для восстановления неактивных индексов. Этот список можно скопировать в Script Executive IBExpert'а или выполнить через isql.

Запрос для поиска неактивных индексов по первичным ключам:

SELECT 
  ' ALTER INDEX ' ||  c.rdb$index_name || ' ACTIVE; '
FROM 
  rdb$indices r 
  JOIN rdb$relation_constraints c ON r.rdb$index_name = c.rdb$index_name
WHERE
  r.rdb$index_inactive > 0 
  AND c.rdb$constraint_type = 'PRIMARY KEY'  
  AND r.rdb$system_flag IS NULL

Запрос для поиска неактивных индексов по внешним ключам:

SELECT 
  ' ALTER INDEX ' ||  c.rdb$index_name || ' ACTIVE; '
FROM 
  rdb$indices r 
  JOIN rdb$relation_constraints c ON r.rdb$index_name = c.rdb$index_name
WHERE
  r.rdb$index_inactive > 0 
  AND c.rdb$constraint_type = 'FOREIGN KEY'  
  AND r.rdb$system_flag IS NULL

Запрос для поиска оставшихся неактивных индексов:

SELECT 
  ' ALTER INDEX ' ||  r.rdb$index_name || ' ACTIVE; '
FROM 
  rdb$indices r 
WHERE
  r.rdb$index_inactive > 0  
  AND r.rdb$system_flag IS NULL
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты