hacer un update que tarde poco tiempo esta algo complicado y mas si manejas millones de registros, lo que podrias hacer y es como una sugerencia es que pongas en una tabla temporal los registros a actualiza(no todos los datos solo los id's) y que selecciones primero digamos el top 10 percent de esa tabla y lo actualices en tu tabla maestra, despues que elimines ese top 10 percent de la tabla temporal y que repitas el proceso varias veces......algo asi:
Código SQL:
Ver originalUPDATE tabla A
SET campo1=campo2
WHERE tabla A.id EXISTS (SELECT top 10 percent id FROM tabla B)
DELETE top 10 percent FROM tabla B
UPDATE tabla A
SET campo1=campo2
WHERE tabla A.id EXISTS (SELECT top 10 percent id FROM tabla B)
DELETE top 10 percent FROM tabla B
UPDATE tabla A
SET campo1=campo2
WHERE tabla A.id EXISTS (SELECT top 10 percent id FROM tabla B)
DELETE top 10 percent FROM tabla B
y asi sucesivamente, quizas sea mucho codigo pero estas haciendo un proceso grande en varios mini procesos que en teoria tardarian menos :), digo es una idea que aplique en un proceso que tardaba casi 8 horas y ahora nada mas tarda 3 :P jejejejeje.
saludos!