изменения в материализованных - PullRequest
2 голосов
/ 18 ноября 2010

У меня есть одно материализованное представление на одном сервере, которое создается ссылкой БД.На этом Mview работает одна работа.(созданный ранее с помощью dbms_refresh.make).

Теперь я создал 3 новых поля в исходной таблице.Мои запросы:

1) Нужно ли мне снова удалять и создавать Mview, если да, нужно ли мне снова создавать журнал Mview на главном сервере 2) Что происходит с работой, выполняющейся на Mview, нужносоздать его еще раз?

Кроме того, в Mview созданы представления, поэтому - Если я выполню запрос на создание или замену представления, это создаст какие-либо проблемы?* Спасибо!

Ответы [ 2 ]

3 голосов
/ 18 ноября 2010

Если вам нужно включить новые столбцы в ваше материализованное представление, тогда да, вам нужно заново создать материализованное представление. Вы должны явно отбросить представление, поскольку отсутствует оператор «создать или заменить материализованное представление».

DROP MATERIALIZED VIEW blah;
CREATE MATERIALIZED VIEW blah...

Удаление / воссоздание материализованного представления должно заново создать задание обновления. Не уверен на 100%, но вы, вероятно, должны также восстановить журнал.

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

2 голосов
/ 18 ноября 2010

После удаления / создания материализованного представления вам следует впоследствии перекомпилировать другие представления, поскольку они могут стать недействительными.

Вы можете проверить, произошло ли это с

select * 
from user_objects
where status = 'INVALID';

Перекомпилировать вид можно с помощью

alter view the_view compile;

или

exec dbms_utility.compile_schema(user);

Это просто перекомпилирует все в вашей схеме. При этом убедитесь, что у вас нет запущенных заданий!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...