Tengo una aplicación azul en la nube con una base de datos sql azure. Tengo un rol de trabajador que necesita analizar + procesar en un archivo (hasta ~ 30 millones de filas) por lo que no puedo usar BCP o SSIS directamente.Inserción masiva paralela con SqlBulkCopy y Azure
Actualmente estoy usando SqlBulkCopy, sin embargo, esto parece demasiado lento ya que he visto tiempos de carga de hasta 4-5 minutos para 400k filas.
Quiero ejecutar mis inserciones en bloque en paralelo; sin embargo, al leer los artículos sobre importación de datos en paralelo/controlar el comportamiento de bloqueo, dice que SqlBulkCopy requiere que la tabla no tenga índices agrupados y que se debe especificar un bloqueo de tabla (bloqueo BU). Sin embargo, las tablas azules deben tener un índice agrupado ...
¿Es posible utilizar SqlBulkCopy en paralelo en la misma tabla en SQL Azure? Si no, ¿hay otra API (que pueda usar en el código) para hacer esto?
Ass Matt says. El rendimiento se siente bien para mí. Asegúrese de no tener índices en sus tablas aparte del índice agrupado. –
Terminé insertando en tablas temporales en paralelo, y luego haciendo una inserción desde esas tablas temporales en las tablas principales (en serie). Eso me pareció mucho más rápido, ya que la inserción de las tablas temporales tomó ~ 4-5 minutos durante aproximadamente 2 millones de filas. – kyliod