Necesito encontrar la mejor manera de insertar o actualizar datos en la base de datos utilizando el servidor sql y asp.net. Es un escenario estándar si los datos existen, se actualiza si no se inserta. Sé que hay muchos temas aquí sobre eso, pero nadie ha respondido lo que necesito saber.Inserción/actualización masiva de servidor Sql frente a MERGE en el escenario de inserción o actualización
Así que mi problema es que realmente no hay ningún problema cuando actualiza/inserta 5k - 10k filas pero con 50k y más.
Mi primera idea fue utilizar el comando sql server 2008 MERGE, pero tengo algunas consideraciones de rendimiento si serán más de 50k filas. Además, no sé si puedo margar los datos de esta manera, basados no en la clave de identificación primaria (int) sino en otra clave única en la tabla. (para ser precisos, un número de serie del producto que no cambiará a tiempo).
Mi segunda idea fue primero obtener todas las publicaciones seriadas de productos, luego comparar las nuevas series de datos con eso y dividirlo en datos para insertar y datos para actualizar, luego solo hacer una inserción masiva y una actualización masiva.
Simplemente no sé cuál será mejor, con MERGE no sé cuál será el rendimiento y solo es compatible con el servidor sql 2008, pero parece bastante simple, la segunda opción no necesita sql 2008, los lotes deberían ser rápidos, pero seleccionar primero todas las publicaciones seriadas y dividir en función de ellos podría tener algunas penalizaciones de rendimiento.
¿Cuál es su opinión, qué elegir?
¿Está decidiendo actualizar a 2008 o está distribuyendo una aplicación que puede necesitar ejecutarse en múltiples versiones de SQL Server? Porque si ya lo tienes, deberías poder probar Merge para el rendimiento. – JeffO
Sí, necesitaré actualizar para usar Marge, eso no es un problema, pero si Marge empeora en rendimiento, entonces simplemente no sé si vale la pena. – Programista