Tengo una tabla bastante grande: más de 20 millones de filas y necesito actualizar aproximadamente el 5% de eso, o 1 millón de filas.¿Cómo acelerar una actualización masiva a la columna agrupada?
Desafortunadamente, estoy actualizando la columna (int) que se está utilizando como el índice agrupado.
Mi pregunta es: ¿Cuál es la forma más rápida de actualizar estas filas?
He intentado actualizar las filas directamente:
update t1
set t1.groupId = t2.groupId
from
table t1
join newtable t2 on t1.email = t2.email
pero esto lleva demasiado tiempo (lo paré después de 3 horas)
que suponer que esto se debe a toda la fila (que tiene 2 datetimes, 2 varchars y 2 ints) se están moviendo para cada actualización.
¿Qué pasa si primero dejo caer el índice agrupado, luego hago las actualizaciones, y luego vuelvo a crear el índice agrupado? ¿Sería eso más rápido?
Nota: Tengo un índice no agrupado en el correo electrónico, en caso de que alguien piense que es la parte seleccionada de la consulta que es lenta. No es.
Creo que ha respondido a su propia pregunta. Además de eliminar el índice agrupado, también puede soltar sus otros índices y volver a crearlos cuando finalice su actualización. –