REFRESH MATERIALIZED VIEW#

REFRESH MATERIALIZED VIEW

REFRESH MATERIALIZED VIEW

REFRESH MATERIALIZED VIEW — заменить содержимое материализованного представления

Синтаксис

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

Описание

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

CONCURRENTLY и WITH NO DATA нельзя указать вместе.

Параметры

CONCURRENTLY

Обновите материализованное представление без блокировки одновременных выборок из материализованного представления. Без этой опции обновление, которое затрагивает много строк, будет использовать меньше ресурсов и завершаться быстрее, но может блокировать другие соединения, которые пытаются читать из материализованного представления. Эта опция может быть быстрее в случаях, когда затрагивается небольшое количество строк.

Этот параметр разрешен только в том случае, если на материализованном представлении есть хотя бы один индекс UNIQUE, который использует только имена столбцов и включает все строки; то есть, он не должен быть индексом выражения или содержать предложение WHERE.

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

Даже с этой опцией только одна REFRESH может выполняться одновременно для любого материализованного представления.

name

Имя (опционально с указанием схемы) материализованного представления для обновления.

Примечания

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

Пока выполняется REFRESH MATERIALIZED VIEW, search_path временно изменяется на pg_catalog, pg_temp.

Примеры

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

REFRESH MATERIALIZED VIEW order_summary;

Эта команда освободит память, связанную с материализованным представлением annual_statistics_basis и оставит его в непросматриваемом состоянии:

REFRESH MATERIALIZED VIEW annual_statistics_basis WITH NO DATA;

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

REFRESH MATERIALIZED VIEW - это расширение Tantor SE.