• BUILD IMMEDIATE позволяет сразу заполнить материализованное представление данными из запроса; значение по умолчанию;
• BUILD DEFERRED разрешает загрузить данные в материализованное представление позднее, в указанное время.
REFRESH OPTION
REFRESG FAST для фиксации всех изменений главных таблиц — необходимы журналы материализованных представлений.
COMMIT конструкции REFRESH указывает на то, что все зафиксированные изменения главных таблиц распространялись на материализованное представление немедленно после фиксации этих изменений.
ENABLE QUERY REWRITE показывает оптимизатору ORACLE переписать все запросы с использованием материализованных представлений вместо лежащих в основе представления таблиц.
AS SELECT * FROM — запроc, на основании которого строится материализованное представление.
Для обновления данных в материализованном представлении может быть использована следующая команда:
Примеры работы с материализованными представлениями.
Создадим две таблицы, заполним данными и создадим на основе этих таблиц материализованное представление.
Создание журналов для материализованного представления.
Журнал материализованного представления необходим для корректного быстрого обновления (FAST) для материализованного представления.
В нашем случае для этого нужно создание журнала для каждой из двух таблиц.
Создаем материализованное представление на основе этих двух таблиц.
Обратите внимание, что для корректного обновления материализованного представления методом FAST нам необходимо, при использовании операций GROUP BY в данном представлении, включать в запрос COUNT (*), COUNT (TABM. txt), то есть COUNT (*) и COUNT по всем колонкам, которые выводятся в материализованном представлении.
Выполним запрос к материализованному представлению.
Рисунок 220. Результат выполнения запроса к материализованному представлению
Выполним обновление одной из таблиц.
Выполним обновление материализованного представления.
Рисунок 221. Результат выполнения запроса к материализованному представлению
Для материализованных представлений могут быть созданы индексы:
Синтаксис создания индекса не отличается от создания индекса для таблицы.
Существует два основных способа обновления материализованных представлений:
• Полная перестройка (REFRESH FAST). В этом случае при каждом обновлении данных происходит выполнение запроса, на основе которого построено представление, и данные полностью перегружаются.
• Инкрементальное обновление (build immediate refresh complete). В этом случае, когда обновляется любая из таблиц, из запроса в материализованном представлении создается специальный журнал изменений и изменения представления распространяются только для данных, которые изменились.
Для материализованных представлений можно использовать следующие возможности:
• создавать индексы;
• использовать секционирование в материализованных представлениях;
• создавать материализованные представления на основе секционированных таблиц.
В материализованном представлении допустимы различные типы агрегации вроде SUM, COUNT (*), AVG, MIN и MAX. В определении материализованного представления также можно использовать соединения множества таблиц.
При создании материализованных представлений существуют следующие ограничения.
Следующие конструкции SELECT не могут быть использованы при работе с материализованными представлениями: DISTINCT, FIRST, HAVING, ORDER BY, UNION, UNION ALL, MINUS, INTERSECT, JOIN.
Если вы считаете, что материализованное представление не нужно, можете уничтожить его с помощью оператора DROP MATERIALIZED VIEW:
Какие права необходимы для работы с материализованными представлениями?
Необходимые права:
Можно ли использовать в материализованных представлениях функции USER, CURRENT_USER, SESSION_USER?
Использование функций USER, CURRENT_USER, SESSION_USER в материализованных представлениях не разрешено.
Можно ли в материализованных представлениях использовать последовательности (SEQ)?
Нет, использовать NEXTVAL и CURRVAL в материализованных представлениях нельзя.
Приведите пример, для чего можно использовать материализованные представления на практике.
Например, ежедневная банковская отчетность: ежедневно обновляются материализованные представления, где считаются предварительные итоги, после чего с их использованием строится отчетность.
Читать дальше
Конец ознакомительного отрывка
Купить книгу