Mi compañía está maldita por una asociación simbiótica que se ha convertido en parásita. Para obtener nuestros datos del parásito, tenemos que usar una conexión odbc dolorosamente lenta. Sin embargo, me di cuenta recientemente de que puedo obtener más rendimiento al ejecutar consultas en paralelo (incluso en la misma tabla).La forma más rápida de insertar en paralelo a una sola tabla
Hay una gran mesa en particular que quiero extraer datos desde y moverlo a nuestra tabla local. Al ejecutar consultas en paralelo, puedo obtener datos más rápidamente, pero también me imagino que esto podría causar problemas al tratar de escribir datos de múltiples consultas en la misma tabla a la vez.
¿Qué consejo me puede dar sobre cómo manejar mejor esta situación para que pueda aprovechar el aumento de la velocidad de uso de consultas en paralelo?
EDIT: Obtuve algunos comentarios excelentes aquí, pero creo que no estaba completamente claro sobre el hecho de que estoy extrayendo datos a través de un servidor vinculado (que usa los controladores odbc). En otras palabras, eso significa que puedo ejecutar las instrucciones INSERT normales y creo que eso proporcionaría un mejor rendimiento que SqlBulkCopy o BULK INSERT (en realidad, no creo que BULK INSERT sea siquiera una opción).
Como sugirió, las escrituras paralelas probablemente no ayuden al rendimiento. Puede encontrar algunas respuestas aquí http://stackoverflow.com/questions/2861944/how-do-i-do-very-fast-inserts-to-sql-server-2008 –
¿Está migrando los datos? Lo pregunto porque dijiste que movías los datos a las tablas locales. Además, ¿cómo haces esto en el código, por ejemplo, C# o como parte de un trabajo sql? –
@mouters Sí, pero los nuevos datos no entran en nuestra base de datos, así que tendré que copiar todo lo nuevo sobre una base diaria. Hasta ahora lo he estado haciendo en sms a mano, pero la idea paralela se hará en C# si lo hago. Probablemente no vaya a hacer esto en paralelo b/c Obtuve todos los datos históricos ahora y realmente solo necesito configurar un trabajo sql para ejecutar y obtener nuevos datos todas las noches. Pero solo quería obtener algo de información sobre la idea b/c que podría tener para usarla en el futuro cercano en otras cosas. –