Дельта

Содержание раздела
  1. Действия с дельтами
  2. Метка времени дельты
  3. Содержимое дельты
  4. Отмена изменений дельты
  5. Дельты с метками времени в будущем

Дельта — целостная совокупность изменений в логической базе данных. Дельты нумеруются по порядку в рамках логической базы данных, начиная с нуля.

Действия с дельтами

Дельту можно открыть, закрыть, отменить (откатить) и удалить.

Дельта, которую открыли и еще не закрыли, называется открытой или горячей, а дельта, которую закрыли, — закрытой. Для каждой логической базы данных одновременно может быть открыто не более одной дельты.

На рисунке ниже показана последовательность дельт, где дельта 3 является открытой, а все предыдущие — закрытыми.

Открытая и закрытые дельты

Минимально допустимая разница между закрытием дельт — 1 секунда.

Метка времени дельты

В запросе на закрытие дельты можно указать метку времени — дату и время закрытия этой дельты. Если метка для дельты не указана, система устанавливает ее равной текущему времени сервера. Эту же метку времени получают все версии данных, добавленные с момента закрытия предыдущей дельты.

Содержимое дельты

Дельта включает все операции записи, выполненные между открытием и закрытием этой дельты.

На рисунке ниже показана последовательность операций записи в дельте 0, где операция 0 является первой операцией дельты, а операция 2 — последней операцией дельты.

Операции записи дельты

Отмена изменений дельты

Отменить все изменения, совершенные в открытой дельте, можно с помощью ROLLBACK DELTA.

Дельты с метками времени в будущем

При закрытии дельты можно указать любую дату и время, которые превышают дату и время закрытия предыдущей дельты. Если вы указываете дату и время в будущем относительно серверного времени, учитывайте, что SELECT без ключевого слова FOR SYSTEM_TIME и DELETE работают с версией данных, которая имеет метку времени, соответствующую текущему времени сервера. Это означает, что данные тех версий, которые имеют более позднюю метку времени или не имеют метки времени, не возвращаются по умолчанию и не удаляются.

Чтобы получить данные «будущих» версий в SELECT-запросе, используйте ключевое слово FOR SYSTEM_TIME с номером дельты или операции записи.