@TheZinter

Как оптимизировать bulk update в msssql?

SQL Server 2019. Каждый день обрабатывается до 500к строк. Нужно сделать update строкам по найденным параметрам из других файлов.
Моя реализация на python:
  1. Создаю список в который помещаю результат select id from table_name where date = datetime.now() Таким образом я получаю ключи ко всем нужным записям в таблице.
  2. Завожу цикл в котором по каждому id:
    1. Делаю select необходимого столбца from table_name where id = id
    2. Ищу нужные мне данные в другом файле и возвращаю кортеж
    3. Делаю update table_name set данные = мои данные where id = id


На итерацию в 1к строк уходит в среднем 12мин, т.е. на перебор 500к надо порядка 100 часов. Как можно оптимизировать процесс?
Рассматривал вариант выгрузить id и данные сразу в виде 500к строк но тогда задыхается оперативка при переборе такого списка.
  • Вопрос задан
  • 192 просмотра
Решения вопроса 1
@TheZinter Автор вопроса
Может кому пригодится:
1. загружал файл в список, затем конвертил его в кортеж и дальше работал уже с ним.
2. результаты записывал во временную таблицу и в конце делал апдейт по примеру пользователя vilinyh
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы