REFRESH MATERIALIZED VIEW

Заменяет содержимое материализованного представления.

Синтаксис

REFRESH MATERIALIZED VIEW [ CONCURRENTLY ] <name>
    [ WITH [ NO ] DATA ]

Описание

Команда REFRESH MATERIALIZED VIEW полностью заменяет содержимое материализованного представления. Старые данные удаляются. Для выполнения этой команды вы должны быть владельцем материализованного представления. Если указано WITH DATA (или используется значение по умолчанию), выполняется базовый запрос для получения новых данных, и материализованное представление остаётся в состоянии, пригодном для сканирования. Если указано WITH NO DATA, новые данные не формируются, и материализованное представление переходит в состояние, недоступное для сканирования.

Нельзя одновременно указывать параметры CONCURRENTLY и WITH NO DATA.

Параметры

  • CONCURRENTLY
    • Обновляет материализованное представление без блокировки параллельных операций SELECT к этому представлению. Без этой опции обновление, затрагивающее большое количество строк, обычно использует меньше ресурсов и завершается быстрее, но может блокировать другие соединения, которые пытаются читать данные из материализованного представления. Эта опция может оказаться быстрее в случаях, когда затрагивается небольшое число строк.
    • Данная опция допускается только в том случае, если в материализованном представлении существует как минимум один уникальный индекс, использующий только имена столбцов и охватывающий все строки; то есть индекс не должен основываться на выражениях и не должен содержать условие WHERE.
    • Эту опцию нельзя использовать, если материализованное представление ещё не заполнено данными.
    • Даже с этой опцией одновременно может выполняться только одна команда REFRESH для одного материализованного представления.
  • name
    • Имя (при необходимости с указанием схемы) материализованного представления, которое необходимо обновить.
  • WITH [ NO ] DATA
    • WITH DATA — значение по умолчанию, указывает, что запрос материализованного представления будет выполнен для получения новых данных, и представление останется в состоянии, пригодном для сканирования. Если указано WITH NO DATA, новые данные не генерируются, и материализованное представление переходит в состояние, недоступное для сканирования.

      Замечания

      Если в определяющем запросе материализованного представления присутствует предложение ORDER BY, исходное содержимое представления будет отсортировано соответствующим образом; однако команда REFRESH MATERIALIZED VIEW не гарантирует сохранение этого порядка.

Примеры

Эта команда заменяет содержимое материализованного представления order_summary, используя запрос из его определения, и оставляет его в состоянии, пригодном для сканирования.

REFRESH MATERIALIZED VIEW order_summary;

Эта команда освобождает хранилище, связанное с материализованным представлением annual_statistics_basis, и оставляет его в состоянии, недоступном для сканирования.

REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;

Совместимость

REFRESH MATERIALIZED VIEW является расширением стандарта SQL, реализованным в базе данных.

Смотрите также

ALTER MATERIALIZED VIEW, CREATE MATERIALIZED VIEW, DROP MATERIALIZED VIEW