От скорости загрузки данных зависит очень многое, обновление данных и первоначальная загрузка это две разные задачи. Поэтому крайне важно разделять эти задачи на уровне входа данных, подаваемые на загрузку или на обновление.
Допустим Вы ежедневно обновляете справочник сотрудников, в котором 40 тысяч записей. Как система делает это по умолчанию? Мы указываем ей атрибут, по которому будет выполнятся поиск учетной записи, это может быть «Табельный номер». Далее система открывает каждую запись по ключу и проверяет изменились ли данные или нет.
В данной ситуации проблемой будет является скорость, а точнее время на которое система затратит, перебирая 40 тысяч записей, это в том случае, если нет дополнительно связанных объектов. А если они есть, то наше время можно умножать надвое, а если справочников на обновление больше, то не сложно подсчитать сколько времени будет занимать штатная загрузка данных.
Что же можно сделать, чтобы ускорить загрузку данных, самый простой действенный и быстрый способ, это доверить сверку измененных данных базе данных, с которой мы получаем данные на загрузку. Делим процесс на несколько этапов, первый этап, выгружаем данные из системы OT в промежуточную таблицу. Второй этап, сравниваем данные между двумя таблицами, далее формируем список измененных записей и только их загружаем в систему.
Таким способом оптимизируем все этапы загрузки данных, скажем для рабочей недели, а в выходные дни, системе можно доверить обновить все данные. Это самый простой способ на мой взгляд, как можно ускорить загрузку данных в систему OMNITRACKER.