Estoy construyendo un sistema para actualizar grandes cantidades de datos a través de varios canales CSV. Normalmente me gustaría hacer un ciclo de cada fila en el feed, hacer una consulta de selección para comprobar si el elemento ya existe e insertar/actualizar un elemento, dependiendo de si existe o no.Mejores prácticas para insertar/actualizar gran cantidad de datos en SQL Server 2008
Siento que este método no es muy escalable y podría dañar el servidor en fuentes más grandes. Mi solución es recorrer los elementos de manera normal, pero almacenarlos en la memoria. Luego, por cada 100 elementos, seleccione uno de esos 100 elementos y obtenga una lista de los elementos existentes en la base de datos que coincidan. A continuación, concatene las instrucciones de inserción/actualización y ejecútelas en la base de datos. Esto esencialmente reduciría los viajes a la base de datos.
¿Se trata de una solución suficientemente escalable y hay ejemplos de tutoriales sobre la importación de fuentes grandes en un entorno productivo?
Gracias
+1 para usar BULK INSERT & MERGE –
Gracias por su sugerencia. El motivo por el que recorro cada elemento es porque necesito realizar alguna validación y lógica de formateo antes de agregarlo a la base de datos. Esto luego se retransmite al usuario si hay algún problema con el feed en sí. Aunque me gusta la idea de fusionar los datos, investigaré eso. – markvpc
También puede hacer la validación y el formateo de forma sencilla. Pasar por los registros individuales es casi siempre una mala elección y no debe considerar hacerlo hasta que todas las otras opciones hayan sido eliminadas. – HLGEM