Архивирование таблиц доступно в системе, начиная с версии 2.0.4, как дополнительная возможность (не устанавливается по умолчанию).
Смысл архивирования в освобождении таблиц от неактуальных записей. Теоретически, она должна сокращать время поиска в этих таблицах. Устаревшие записи переносятся в отдельные архивные таблицы. По желанию администратора, для этих таблиц может быть выделено особое табличное пространство (tablespace).
Актуальность записи определяется по содержанию столбца, содержащего даты. Например, можно архивировать все записи, сделанные более года назад от текущей даты. При отсутствии столбца с датой архивирование невозможно.
Настройка
Откройте раздел Система | Архив. Нажмите кнопку
.Откроется карточка настроек нового архиватора.
Название поля Представление отчасти вводит в заблуждение. На самом деле, архивироваться будет не само представление, а таблица, на котором оно основано. Название этой таблицы можно увидеть, нажав на кнопку
справа от имени представления,Обратите внимание: у архивируемой таблицы не должно быть дочерних (использующих ее данные) таблиц.
В поле Поле укажите столбец таблицы, содержащий дату. В нашем примере это дата системного сообщения.
Роль на просмотр заполняется автоматически.
В поле Максимальное значение указывается дата (или выражение, возвращающее дату), начиная с которой записи будут архироваться, например:
add_months(trunc(current_date-15,'month'), -15)
Запрос с этим выражением, например, в SQL Developer, вернет:
01.02.18
Следовательно, записи, созданные после 1 февраля 2018 года, архивироваться не будут.
В поле Tablespace укажите пространство, в котором будет создана архивная таблица. В этом поле нельзя использовать константу, только выражение с &1. Вместо &1 система подставит выражение из правила (см. ниже). Каждому архиву можно сопоставить свое правило и, соответственно, свою архивную таблицу.
Обратите внимание: архивная функция не создает табличных пространств, но только проверяет их наличие. Если указанного пространства не существует, таблица будет создана в пространстве, указанном в поле Tablespace по умолчанию. В эту графу можно вписать константу (имя пространства). Если в обеих графах пусто, таблица создается в пространстве, определенном по умолчанию в настройках БД.
Поле Статус определяет, включен ли архиватор.
Добавление правила
Создав новый архиватор, добавьте к нему хотя бы одно правило. Правила позволяют распределить архивируемые данные по возрасту, например, по годам. Все данные, созданные после даты, указанной в поле Выражение, попадут в отдельный архив. Пример настроек правила:
Обратите внимание: если дата записи более ранняя, чем указана в правиле, но более поздняя, чем предельная дата, указанная во вкладке Объект, запись архивирована не будет. Например: в правиле указана дата: 01.01.2019; во вкладке Объект указана дата: 01.02.2018; дата записи: 01.05.2018. Такую запись наш архиватор обрабатывать не станет.
Архивирование выполняется с помощью фонового задания onm.onm_arch.run(1). Настроить периодичность его выполнения можно в разделе Система | Фоновые задания | Расписание, открыв вкладку с названием соответствующего задания.