Показать сообщение отдельно
  #22  
Старый 26.09.2009, 18:58
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию Объекты со статусом Invalid и Unusable



Объекты со статусом Invalid и Unusable

Текущий статус определенных объектов базы данных можно просмотреть, выполнив запрос к словарю данных, рассмотренному в уроке "Сопровождение объектов схем". Когда обнаруживается объект PL/SQL со статусом INVALID, первый вопрос, на который необходимо ответить: "Был ли когда-либо статус этого объект VALID".

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

Не делать ничего. Большинство объектов PL/SQL будут автоматически перекомпилироваться, если это необходимо, при их вызове. Пользователи будут недолго ждать, пока объекты перекомпилируются (в большинстве случаев это даже происходит незаметно).
Перекомпилировать вручную неработоспособные объекты.

Ручная перекомпиляция может быть выполнена с помощью Enterprise Manager или по команде SQL:

Код:
ALTER PROCEDURE HR.add_job__history COMPILE;
Ручная перекомпиляция пакетов PL/SQL производится в два шага:

Код:
ALTER РАСКАТЕ HR.maintainemp COMPILE; 
ALTER РАСКАТЕ HR.maintainemp COMPILE BODY;

Непригодные (unusable) индексы после перестройки становятся верными, так как пересоздаются указатели. При выполнении операции REBUILD для индекса со статусом unusable индекс пересоздается на новом месте, после чего старый непригодный индекс удаляется. Такая операция может быть выполнена с использованием Enterprise Manager или по команде SQL.

Код:
ALTER INDEX HR.emp_empid_pk REBUILD;
ALTER INDEX HR.emp_empid_pk REBUILD ONLINE;
ALTER INDEX HR.email REBUILD TABLESPACE USERS;
Когда фраза TABLESPACE не указывается, индекс пересоздается в том же самом табличном пространстве, в котором он уже существует. Фраза REBUILD ONLINE разрешает пользователям изменять данные индексируемой таблицы во время перестроения индекса (без ключевого слова ONLINE пользователи должны ждать завершения операции перестройки индекса и только потом выполнять операции DML).

В Enterprise Manager для исправления неработоспособных (UNUSABLE) индексов используется действие Reorganize.

Примечание: Для перестройки индекса требуется доступное свободное пространство. Проверьте, что оно есть перед началом выполнения операции. Enterprise Manager проверяет наличие пространства автоматически.
__________________
Телеграм чат
Ответить с цитированием