Сначала я выясню, где у вас узкое место: ваш процессор привязан или не работает?Другими словами - ваша подсистема ввода-вывода способна правильно обрабатывать нагрузку?
Воссоздание полной таблицы - это большая нагрузка ввода-вывода, не говоря уже о том, что она займет много места, чтобы сохранить таблицудважды временно.
Вам нужно выполнить MERGE - из того, что я вижу, должно быть достаточно простого обновления.Пример:
UPDATE
TABLE1
SET
ColumnX = UTABLE.ColumnX
...
FROM
TABLE1
INNER JOIN
UTABLE ON TABLE1.record_id = UTABLE.record_id
Вы можете пакетировать обновления, используя ROWCOUNT, но это не ускорит выполнение, а только поможет уменьшить общую блокировку.
Кроме того, какиеиндексы у вас на столе?Может быть быстрее отключить индексы перед обновлением, а затем перестроить их с нуля (только некластеризованные).