Para el rendimiento, ¿qué opción sería mejor para los grandes conjuntos de datos que se van a actualizar?CASO frente a consultas de ACTUALIZACIÓN múltiples para grandes conjuntos de datos - Rendimiento
¿Utiliza una declaración CASE o consultas individuales de actualización?
Ejemplo de caso:
UPDATE tbl_name SET field_name =
CASE
WHEN condition_1 THEN 'Blah'
WHEN condition_2 THEN 'Foo'
WHEN condition_x THEN 123
ELSE 'bar'
END AS value
individual Ejemplo de consulta:
UPDATE tbl_name SET field_name = 'Blah' WHERE field_name = condition_1
UPDATE tbl_name SET field_name = 'Foo' WHERE field_name = condition_2
UPDATE tbl_name SET field_name = 123 WHERE field_name = condition_x
UPDATE tbl_name SET field_name = 'bar' WHERE field_name = condition_y
NOTA: Cerca de 300.000 registros van a ser actualizados y la sentencia CASE tendría unos 10.000 cuando las condiciones. Si utiliza las consultas individuales, también se trata de 10.000,
"Si usa las consultas individuales, también se trata de 10.000" - tal vez una tabla temporal unida sería una mejor idea ... –
+1 Mitch ... no notó el alcance cuando escribí mi respuesta. En principio, 'CASE' será más eficiente, pero tal vez no a esa escala. – JNK
Interesante No había pensado en este enfoque, gracias –