Публичное пространство
Автоматическая подрезка данных в базах данных операционного дня и лояльности
10.2.66.0
https://crystals.atlassian.net/browse/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.
Настройка | Значение по умолчанию | Описание |
|---|---|---|
| 01:00 | Время в формате HH:mm в которое запускается таймер очистки базы. |
| 75 | Время жизни объектов в базе в днях. По истечении этого периода объекты будут удалены. |
| false | Включена ли очистка базы. |
| 50 | Размер пачки для удаления. |
| 04:00 | Время в формате HH:mm окончания процедуры подрезки https://crystals.atlassian.net/browse/CR-11739 https://crystals.atlassian.net/browse/SRTS-2800 10.4.7.0
|
Дополнительная информация
По-умолчанию установлено значение
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-2025, ООО «Кристалл Сервис Интеграция».
Все права защищены.