Мне нужно изменить запрос Materialized view. Можно ли сделать то же самое, не вызывая и не воссоздавая его.Измените запрос материализованного представления
ответ
Вы Might быть в состоянии использовать существующий MV в качестве источника prebuilt table for the new MV
Многое зависит от того, что вы делаете на запрос, конечно. Например, если вы добавляете столбец, вам нужно обновить все, чтобы получить новое значение.
PS. Быстрый способ превратить существующий MV в таблицу будет заменой разделов, но следить за gotchas. Затем вы управляете таблицей в соответствии с новым набором результатов и создаете новый MV на основе управляемой таблицы.
Вы можете оставить mview на месте. Если ваша задача состоит в том, чтобы минимизировать время простоя, в то время как новый mview создает экземпляр (поскольку вы не использовали предварительно созданную таблицу), вы можете сделать следующее.
- Создать новую таблицу с именем mview_1 на предварительно построенной таблице
- После того, как он был создан, Вы можете оставить старую
- создать или заменить вид MView, как выбрать * из mview_1
Теперь, всякий раз, когда вам нужно перестроить, вы сможете сделать это с минимальным временем простоя, так как вы можете просто взглянуть на представление новой таблицы/mview в будущем.
Для условий, в которых вы не уверены, существует ли MVIEW или нет (что для CREATE OR REPLACE действительно подходит), я использую;
BEGIN
EXECUTE IMMEDIATE 'DROP MATERIALIZED VIEW name_of_mview';
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = -12003 THEN
dbms_output.put_line('MVIEW does not exist, which was somewhat expected');
ELSE
RAISE;
END IF;
END;
/
CREATE MATERIALIZED VIEW name_of_mview ... AS SELECT ...
Нет, вы не можете изменить запрос материализованного представления, не отбрасывая его.
Синтаксис CREATE MATERIALIZED VIEW не поддерживает эту функцию.
альтер MATERIALIZED VIEW используется для изменения существующего материализованного представления в одном или нескольких из следующих способов:
- Чтобы изменить его характеристики хранения
- Чтобы изменить свой метод обновления, режим, или время
- Для того, чтобы изменить его структуру, так что это другой тип материализованного представления
- Чтобы включить или отключить запрос переписать
См Oracle 12c Release 1 Руководство по:
CREATE MATERIALIZED VIEW синтаксис: http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_6002.htm#i2145767
ALTER MATERIALIZED VIEW синтаксис: http://docs.oracle.com/cd/E16655_01/server.121/e17209/statements_2002.htm#SQLRF00808
- 1. Переопределение материализованного представления без простоя
- 2. Недостатки материализованного представления
- 3. Oracle - создание материализованного представления
- 4. Изменение материализованного представления на commit
- 5. Deadlock при создании материализованного представления
- 6. материализованного представления с вложенной таблицей
- 7. Cassandra индексов против материализованного представления
- 8. Создание материализованного представления в оракуле навсегда
- 9. Как узнать базовый запрос материализованного представления, который я создал?
- 10. Postgres: см. Запрос, используемый для создания материализованного представления?
- 11. Получение материализованного представления Oracle для обновления
- 12. Планировщик работы с СУБД для материализованного представления
- 13. Текстовые индексы Oracle поверх материализованного представления
- 14. Ошибка создания материализованного представления ON COMMIT
- 15. обновления материализованного представления, когда urderlying изменения таблицы
- 16. Способ улучшения производительности материализованного представления обновления
- 17. Что такое PCT для материализованного представления?
- 18. Частое обновление материализованного представления в Oracle
- 19. Какова связь материализованного представления с одноименной таблицей?
- 20. Как просмотреть исходный сценарий материализованного представления?
- 21. Использование материализованного представления в базе данных запроса и обновления
- 22. Список грантов и привилегий для материализованного представления в PostgreSQL
- 23. Консистенция материализованного представления освежающего результата между соединениями to jdbc
- 24. Измените бритву Макет вне представления
- 25. Оптимизация материализованного вида
- 26. Как перечислить все материализованного представления таблицы в Кассандре CQL
- 27. быстрого обновления материализованного представления с журналом на основе первичного ключа
- 28. создание материализованного представления выполняется быстро, но обновление занимает часы
- 29. Преобразование материализованного представления в таблицу в Oracle 11g?
- 30. Создание материализованного представления с быстрым обновлением на Oracle 11g
Простои могут быть равны нулю, если вы указываете свои запросы и код на синоним (или стандартный вид) и переключаете его с wro (и обратно, когда вам нужно снова его изменить). Создание материализованного представления может занять все время, которое вам нужно, вы просто меняете указатель, когда он готов в течение миллисекунд. – 2016-09-22 10:02:42