Базы данных Oracle - статьи

         

Синхронизация с изменениями в исходных данных


Синхронизация образованных при создании materialized view данных с изменениями в базовых таблицах требуется, наверное, всегда. Принципы синхронизации общие для всех категорий materialized view. Синхронизация может выполняться явно, либо осуществляться автоматически.

Схема обновления хранимого результата характеризуется двумя свойствами:

  • Режим обновления. Указывает момент осуществления обновления, будет ли обновление делаться по фиксации транзакции (ON COMMIT) или с помощью API (ON DEMAND), процедурам из состава системных пакетов Oracle, вызываемым явно или неявно (автоматически).
  • Метод обновления. Задает объем обновления. Два основных метода - полное перевычисление результата (COMPLETE) и экономное (FAST), достигаемое путем внесения в результат только изменений, вызванных изменениям в базовых таблицах.

    Оба свойства могут указываются во фразе REFRESH предложения CREATE/ALTER MATERIALIZED VIEW:

    CREATE MATERIALIZED VIEW имя [REFRESH ...];

    При указании режима ON DEMAND дополнительно можно задать желаемое время внесения обновлений. Вот возможные сочетания задаваемых свойств схемы обновления:

    REFRESH ON COMMIT FAST <требуются журналы REFRESH ON COMMIT COMPLETE REFRESH [ON DEMAND] FAST [START WITH ...] <требуются журналы REFRESH [ON DEMAND] COMPLETE [START WITH ...]

    Обновления всех видов можно на время запретить, переведя materialized view в специальное состояние командой

    ALTER MATERIALIZED VIEW имя NEVER REFRESH;



    Содержание раздела