Cita: Si te he entendido bien, crees que sería más optimo en lugar de leer el XML y realizar los inserts o updates en la base de datos, leer el xml y transformarlo en un archivo capaz de hacer el load data en la base de datos?
Mas o menos. La idea es leer el XML, crear con él un script con INSERTs masivos, y luego gestionar con otro los UPDATE.
Por INSERT masivo se entiende esto:
Código MySQL:
Ver originalINSERT INTO tabla
(campo1
, campo2
, campo3
, ... campoN
) VALUES(valor1
, campo2
, valor3
, ... valorN
), (valor1
, campo2
, valor3
, ... valorN
), (valor1
, campo2
, valor3
, ... valorN
), (valor1
, campo2
, valor3
, ... valorN
), (valor1
, campo2
, valor3
, ... valorN
), (valor1
, campo2
, valor3
, ... valorN
)...
De este modo se crea un INSERT de múltiples registros (yo tengo algunos que meten 1.000 por bloque), que se envían al buffer rápidamente y luego se insertan rápidamente.
El caso de los updates es mas complejo porque cada registro debe ser enviado específicamente si los datos a actualizar son algunos y no todos. En ese caso es mejor crear un SP que se invoque desde la aplicación con la lectura del XML. De ese modo se pueden realizar en el SP todas las comprobaciones necesarias para poner o no el dato en cada campo.
Es una forma de verlo.