SQLBulkCopy oder Masseneinfügung

bulkinsert c# performance sql sqlbulkcopy

Frage

Ich habe ungefähr 6500 Dateien für eine Summe von ungefähr 17 GB Daten, und dies ist das erste Mal, dass ich etwas verschieben musste, was ich eine große Menge an Daten nennen würde. Die Daten befinden sich auf einem Netzlaufwerk, aber die einzelnen Dateien sind relativ klein (max. 7 MB).

Ich schreibe ein Programm in C # und ich frage mich, ob ich einen signifikanten Unterschied in der Leistung bemerken würde, wenn ich BULK INSERT anstelle von SQLBulkCopy verwenden würde. Die Tabelle auf dem Server hat auch eine extra Spalte. Wenn ich also BULK INSERT verwende, muss ich eine Formatdatei verwenden und dann für jede Zeile ein UPDATE ausführen.

Ich bin neu in Foren, also wenn es eine bessere Möglichkeit gibt, diese Frage zu stellen, dann kannst du das auch gerne erwähnen.

Akzeptierte Antwort

Durch Test ist BULK INSERT viel schneller. Nach einer Stunde mit SQLBulkCopy war ich vielleicht ein Viertel meiner Daten durch, und ich hatte die alternative Methode geschrieben (und zu Mittag gegessen). Als ich mit dem Schreiben dieses Beitrags fertig war (~ 3 Minuten), war BULK INSERT ungefähr ein Drittel des Weges zurück.

Für alle, die dies als Referenz betrachten, ist es auch erwähnenswert, dass der Upload ohne einen Primärschlüssel schneller ist.

Es sollte angemerkt werden, dass eine der Hauptursachen dafür sein könnte, dass der Server ein wesentlich leistungsfähigerer Computer ist, und dass dies keine Analyse der Effizienz des Algorithmus ist, aber ich würde immer noch BULK INSERT als Durchschnitt empfehlen Server ist wahrscheinlich wesentlich schneller als der durchschnittliche Desktop-Computer.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum