Как увеличить скорость при обновлении в ssis

У меня есть задача SQL Server в SQL Server, которая обновляет только 20 строк в секунду, но мне нужно обновить более 200 000 строк, что занимает много времени. Когда я использую SCD (Тип 2), он не вставляет и не обновляет какие-либо записи. (Даже не давая никакой ошибки)

Некоторые партии строк передаются, и командная задача SQL становится желтой... хотя она обновляет столбцы, но очень медленно (20 строк в секунду).

Как я могу увеличить скорость обновления?

2 ответа

Решение

Не используйте задачу SQL. Он выполняет одноэтапные операции, поэтому можно ожидать, что в целевой базе данных будет выдано 200000 операторов обновления. Вы могли бы получить некоторое незначительное повышение, если бы вы создали хранимую процедуру, чтобы избежать нескольких шагов в процессе компиляции запроса, но вам придется проверить и посмотреть.

Реальный способ повысить производительность - создать промежуточную таблицу и вывести в нее все строки, подлежащие обновлению. После завершения потока данных подключите задачу "Выполнение SQL" для выполнения пакетного обновления из промежуточной таблицы в целевую таблицу.

Дайте мне знать, если картинка прояснит это

Если используется SQL 2008 или выше, попробуйте оператор MERGE (в задаче "Выполнить SQL"), который работает на основе набора, а не RBAR (строка за строкой) команды SQL.

Другие вопросы по тегам