SQLBulkCopy ou insertion en bloc

bulkinsert c# performance sql sqlbulkcopy

Question

J'ai environ 6 500 fichiers pour une somme d'environ 17 Go de données, et c'est la première fois que je dois déplacer une grande quantité de données. Les données se trouvent sur un lecteur réseau, mais les fichiers individuels sont relativement petits (7 Mo maximum).

J'écris un programme en C # et je me demandais si je remarquerais une différence de performances significative si j'utilisais BULK INSERT au lieu de SQLBulkCopy. La table sur le serveur a également une colonne supplémentaire, donc si j'utilise BULK INSERT, je devrais utiliser un fichier de format, puis exécuter un UPDATE pour chaque ligne.

Je suis nouveau sur les forums, alors s'il y avait une meilleure façon de poser cette question, n'hésitez pas à le mentionner également.

Réponse acceptée

En test, BULK INSERT est beaucoup plus rapide. Après une heure d'utilisation de SQLBulkCopy, j'étais peut-être au quart de mes données et j'avais fini d'écrire la méthode alternative (et de déjeuner). Au moment où j'ai fini d'écrire cet article (environ 3 minutes), BULK INSERT était à peu près au tiers du chemin parcouru.

Pour tous ceux qui considèrent cela comme une référence, il convient également de mentionner que le téléchargement est plus rapide sans clé primaire.

Il convient de noter que l’une des principales causes de ce problème pourrait être que le serveur était un ordinateur nettement plus puissant et qu'il ne s'agissait pas d'une analyse de l'efficacité de l'algorithme. Le serveur est probablement beaucoup plus rapide que l’ordinateur de bureau moyen.



Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi