Я получаю большой текстовый файл с обновленной информацией от клиента, который содержит обновления для 500 000 пользователей. Однако во время обработки этого файла я часто сталкиваюсь с ошибками тайм-аута SQL Server.
Вот процесс, которому я следую в моем приложении VB, которое обрабатывает данные (в целом):
- Удалить все записи из временной таблицы (чтобы удалить данные за последний месяц) (например,
DELETE * FROM tempTable
)
- Копировать текстовый файл во временную таблицу
- Введите дополнительную информацию во временную таблицу, такую как их organization_id, их user_id, group_code и т. Д.
- Обновление данных в реальных таблицах на основе данных, вычисленных во временной таблице
Проблема в том, что я часто запускаю такие команды, как UPDATE tempTable SET user_id = (SELECT user_id FROM myUsers WHERE external_id = tempTable.external_id
), и эти команды часто останавливаются. Я пытался увеличить таймауты до 10 минут, но они все равно не работают. Теперь я понимаю, что 500 тыс. Строк - это не малое количество строк, которыми нужно манипулировать, но я думаю, что база данных, предназначенная для обработки миллионов и миллионов строк, должна легко справляться с 500 тыс. Строк. Что-то не так с обработкой этих данных?
Пожалуйста, помогите. Любые предложения приветствуются.