Перейти к основному содержимому

ALTER MATERIALIZED VIEW

ALTER MATERIALIZED VIEW может:

  • Изменить имя асинхронного материализованного представления.

  • Изменить стратегию обновления асинхронного материализованного представления.

  • Изменить статус асинхронного материализованного представления на активный или неактивный.

  • Выполнить атомарный обмен между двумя асинхронными материализованными представлениями.

  • Изменить свойства асинхронного материализованного представления.

    Вы можете использовать этот SQL-оператор для изменения следующих свойств:

    • partition_ttl_number
    • partition_refresh_number
    • resource_group
    • auto_refresh_partitions_limit
    • excluded_trigger_tables
    • mv_rewrite_staleness_second
    • unique_constraints
    • foreign_key_constraints
    • colocate_with
    • excluded_refresh_tables
    • Все свойства, связанные с переменными сессии. Для получения информации о переменных сессии см. Системные переменные.
подсказка
  • Эта операция требует привилегию ALTER для целевого материализованного представления. Вы можете следовать инструкциям в GRANT для предоставления этой привилегии.
  • ALTER MATERIALIZED VIEW не поддерживает прямое изменение запроса, используемого для построения материализованного представления. Вы можете создать новое материализованное представление и обменять его с исходным, используя ALTER MATERIALIZED VIEW SWAP WITH.

Синтаксис

ALTER MATERIALIZED VIEW [db_name.]<mv_name> 
{ RENAME [db_name.]<new_mv_name>
| REFRESH <new_refresh_scheme_desc>
| ACTIVE | INACTIVE
| SWAP WITH [db_name.]<mv2_name>
| SET ( "<key>" = "<value>"[,...]) }

Параметры

ПараметрОбязательныйОписание
mv_nameдаИмя материализованного представления для изменения.
new_refresh_scheme_descнетНовая стратегия обновления, см. SQL Reference - CREATE MATERIALIZED VIEW - Parameters для подробностей.
new_mv_nameнетНовое имя для материализованного представления.
ACTIVEнетУстановить статус материализованного представления как активный. Selena автоматически устанавливает материализованное представление как неактивное, если любая из его базовых таблиц изменена, например, удалена и пересоздана, чтобы предотвратить ситуацию, когда исходные метаданные не соответствуют измененной базовой таблице. Неактивные материализованные представления не могут использоваться для ускорения запросов или перезаписи запросов. Вы можете использовать этот SQL для активации материализованного представления после изменения базовых таблиц.
INACTIVEнетУстановить статус материализованного представления как неактивный. Неактивное асинхронное материализованное представление не может быть обновлено. Но вы все еще можете запрашивать его как таблицу.
SWAP WITHнетВыполнить атомарный обмен с другим асинхронным материализованным представлением после необходимых проверок согласованности.
keyнетИмя свойства для изменения, см. SQL Reference - CREATE MATERIALIZED VIEW - Parameters для подробностей.
ПРИМЕЧАНИЕ
Если вы хотите изменить свойство материализованного представления, связанное с переменной сессии, вы должны добавить префикс session. к свойству, например, session.query_timeout. Вам не нужно указывать префикс для свойств, не связанных с сессией, например, mv_rewrite_staleness_second.
valueнетЗначение свойства для изменения.

Пример

Пример 1: Изменить имя материализованного представления.

ALTER MATERIALIZED VIEW lo_mv1 RENAME lo_mv1_new_name;

Пример 2: Изменить интервал обновления материализованного представления.

ALTER MATERIALIZED VIEW lo_mv2 REFRESH ASYNC EVERY(INTERVAL 1 DAY);

Пример 3: Изменить продолжительность тайм-аута для задач обновления материализованного представления на 1 час (по умолчанию).

ALTER MATERIALIZED VIEW mv1 SET ("session.query_timeout" = "3600");

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

ALTER MATERIALIZED VIEW order_mv ACTIVE;

Пример 5: Выполнить атомарный обмен между материализованными представлениями order_mv и order_mv1.

ALTER MATERIALIZED VIEW order_mv SWAP WITH order_mv1;

Пример 6: Включить профиль для процесса обновления материализованного представления. Эта функция включена по умолчанию.

ALTER MATERIALIZED VIEW mv1 SET ("session.enable_profile" = "true");

Пример 7: Включить сброс промежуточных результатов для процесса обновления материализованного представления и установить режим сброса в force. Сброс промежуточных результатов включен по умолчанию с версии v3.1.

-- Включить сброс во время обновления материализованного представления.
ALTER MATERIALIZED VIEW mv1 SET ("session.enable_spill" = "true");
-- Установить spill_mode в force (значение по умолчанию - auto).
ALTER MATERIALIZED VIEW mv1 SET ("session.spill_mode" = "force");

Пример 8: Изменить продолжительность тайм-аута оптимизатора для материализованного представления на 30 секунд (по умолчанию с версии v3.3), если его оператор запроса содержит внешние таблицы или множественные соединения.

ALTER MATERIALIZED VIEW mv1 SET ("session.new_planner_optimize_timeout" = "30000");

Пример 9: Изменить время устаревания перезаписи запроса для материализованного представления на 600 секунд.

ALTER MATERIALIZED VIEW mv1 SET ("mv_rewrite_staleness_second" = "600");