SQLBulkCopy vs DataAdapter pour insérer / mettre à jour des enregistrements 10lcs

.net dataadapter performance sqlbulkcopy vb.net

Question

J'ai environ 1 000 000 enregistrements à insérer dans la base de données.

Les enregistrements ayant le même identifiant doivent être mis à jour sinon insérés

la logique de mise à jour / insertion est écrite dans Stored Proc

J'utilise la méthode DataAdapter.Update pour effectuer ce travail.

Voici le problème.

Un DataTable ne prend pas plus de 65 000 enregistrements.

Insertion / mise à jour est seulement 60 enregistrements par seconde.

Comment puis-je améliorer cette performance et puis-je utiliser SqlBulkCopy ici, peut-il effectuer cette mise à jour / insertion ensemble? quelle serait la performance en elle

Réponse populaire

Chargez-vous les enregistrements dans un DataTable uniquement pour la mise à jour d'insertion?

Dans ce cas, il vaudrait probablement mieux appeler le SP, un à la fois, et ignorer le DataTable.

Ou vous pouvez utiliser TVP et IEnumerable SqlDataRecord et vous n'êtes pas limité à 65 000.

Un exemple d'utilisation de IEnumerable SqlDataRecord



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