Пока
разминался красненьким работал над небольшим POC, решил прогнать тест:
Дано: 5M клиентов более-менее равномерно (500К - 1.3М) распределены по 5 компаниям
В сутки обновляется (Insert/Update) 0.1% клиентов
Вопрос: что нам будет стоить идентицифировать обновленных клиентов с помощью Change tracking ?
Потрачено времени:
- Сгенерировать и импортировать данные через DMF - 4 дня
- Оттюнить AifSqlCtChangeTracking - 4 часа
Тестируем:
- Случайным образом обновляем данные по всем уровням AxdCustomer (это в некотором роде в сумме более 0.1% данных, ну и ладно)
- Запускаем незатейливый джобик в самой большой компании (1.3М клиентов)
Итого: на бюджетной VM в Azure (B4Ms, 4xvCPU, 16 GB RAM, standard HDD) список измененных клиентов (CustTable.RecId) мы получаем за 5 секунд (достаточно шустро). Без перекрытия прочего стандартного кода в .insert(), .update(), event handler-ов и shadow таблиц (просто). Для всех обновлений, в том числе и извне AX (надежно)