Публичное пространство

Автоматическая подрезка данных в базах данных операционного дня и лояльности

10.2.66.0

SRTE-1971 - Получение подробных данных проблемы… СТАТУС

Описание

Начиная с версии 10.2.66.0 есть возможность включения автоматической подрезки сущностей операционного дня и связаные с ним данных, которые не попадают в заданный интервал хранения. Автоматическая подрезка предназначена для того, чтобы у сервером с большим числом данных за день, не возникало проблем с его стабильностью и скоростью.

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

Настройка

1. Выполните скрипт по set_operday.

DROP INDEX IF EXISTS od_purchase_index_id_session;
CREATE INDEX od_purchase_index_id_session
  ON od_purchase USING btree (id_session);

DROP INDEX IF EXISTS od_shift_id_session;
CREATE INDEX od_shift_id_session ON od_shift (id_sessionstart);

2. Установите соответствующие настройки в set → sales_management_properties.

Настройка
Значение по умолчанию
Описание
db.cleaner.cleaning.time01:00Время в формате HH:mm в которое запускается таймер очистки базы.
db.cleaner.objects.lifespan.days75Время жизни объектов в базе в днях. По истечении этого периода объекты будут удалены.
db.cleaner.enabledfalseВключена ли очистка базы.
db.cleaner.shift.batch.size50Размер пачки для удаления.

Дополнительная инфомация

  • По-умолчанию установлено значение NULL - удаление не включено.
  • Удаление запускается по таймеру, 1 раз в определенный промежуток времени и выбирается для удаления все записи дата создания у которых больше [текущая дата - настройка подрезки].
  • При подрезке записей каскадно удалются все связи каждого кортежа сущности в базах данных set_operday и set_loyal пока не закончатся записи с условием дата создания больше [текущая дата-настройка подрезки]
  • Учитываются ограничения количества выборки записей для подрезки, чтобы снизить вероятность выполнения запроса с очень большой результирующей выборкой.
  • Изменение настроек подрезки (удаления) применяются автоматически без перезапуска службы сервера приложений SetRetail10.
  • Во время подрезки чеков штатные процессы SetRetail10 не блокируются.
  • Удаление записей не влияет производительность.

Пример удаления записей с данными по чекам

Условие:

  • В базе данных = 200 000 000 чеков
  • Каждый чек содержит минимум 10 позиций
  • Каждый чек за текущую дату = 91 день
  • Установлена настройка подрезки = 90
  • Итого записей по условию Дата создания документа которых больше[текущая дата-90] в set_opreday → od_purchase = 2 100 000

Логика срабатывания:

  • Срабатывает таймер по запуску функции подрезки
  • Система делает выборку по таблице od_purchase
  • Удаляются выбранные записи таблицы od_purchase
  • Каскадно удаляются все связи каждого кортежа из set_opreday → od_purchase пока не кончатся записи с условием Дата создания документа больше [текущая дата-настройка подрезки]

© 1994-2023, ООО «Кристалл Сервис Интеграция».
Все права защищены..

Политика обработки персональных данных