SQLBulkCopy o Bulk Insert

bulkinsert c# performance sql sqlbulkcopy

Pregunta

Tengo alrededor de 6500 archivos por una suma de aproximadamente 17 GB de datos, y esta es la primera vez que he tenido que mover lo que llamaría una gran cantidad de datos. Los datos están en una unidad de red, pero los archivos individuales son relativamente pequeños (máx. 7 MB).

Estoy escribiendo un programa en C #, y me preguntaba si notaría una diferencia significativa en el rendimiento si usara BULK INSERT en lugar de SQLBulkCopy. La tabla en el servidor también tiene una columna adicional, así que si uso BULK INSERT tendré que usar un archivo de formato y luego ejecutar una ACTUALIZACIÓN para cada fila.

Soy nuevo en los foros, así que si hubiera una mejor manera de hacer esta pregunta, no dude en mencionar eso también.

Respuesta aceptada

Por prueba, BULK INSERT es mucho más rápido. Después de una hora de usar SQLBulkCopy, tal vez estaba a un cuarto del camino de mis datos, y había terminado de escribir el método alternativo (y almorzar). Para cuando terminé de escribir este post (~ 3 minutos), BULG INSERT estaba a punto de terminar un tercio.

Para cualquiera que esté considerando esto como una referencia, también vale la pena mencionar que la carga es más rápida sin una clave principal.

Cabe señalar que una de las principales causas de esto podría ser que el servidor era una computadora significativamente más poderosa, y que este no es un análisis de la eficiencia del algoritmo; sin embargo, todavía recomendaría usar BULK INSERT, como promedio El servidor es probablemente significativamente más rápido que la computadora de escritorio promedio.



Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué