Verwendete DB: MSSQL
Hallo zusammen,
ich habe einen Fatclient und der hat eine Importmöglichkeit. Einige CSV-Dateien von Kunden haben mehrere Millionen Einträge die ich zu Hunderttausenden verdichte und importiere. Mittels BULK System läuft das wunderbar und der gesamte Vorgang dauert nur wenige Minuten.
Das Problem mit dem BULK habe ich leider bei Kunden die ihren Server ausgelagert haben und der Fatclient keinen Dateizugriff auf den DB-Server hat. Also ich kann keine Datei im Verfügbarkeitsbereich des Servers ablegen. Die BULK-Datei muss ja zwingend auf dem PC des Servers liegen.
In Oracle bietet der TableAdapter schon eine Massendatenspeicherung an die zwar etwas langsamer als BULK ist, jedoch auch ein zufriedenstellendes Ergebnis liefert. Gibt es auch für SQL eine Möglichkeit Massendaten über die Verbindung direkt an den Server zu schicken? Mit einzelnen Commands oder DataSets warte ich mir einen Wolf.
Grüße
Andreas
Hallo!
Du kannst versuchen viele Daten zusammen in einer Transaction zu übertragen.
LG pdelvo
Was ist mit der SqlBulkCopy Klasse? Kann auch aus DataTable importieren, eigener IDataReader geht auch.
ImageTools for Silverlight: http://imagetools.codeplex.com | http://www.silverdiagram.net | http://www.cleancodedeveloper.de b:::
@Andreas@Tricept:
Du kennst Bulk und weist das es um den Sql Server geht, warum suchst du dann nicht zuerst in der Doku?
Dann hättest Du ganz bestimmt SqlBulkCopy gefunden.
Und da gibt es in verbindung mit dem schnellen CsvReader auch ganz schnell was bei Google gefunden.
Edit:
malignate war schneller.
Oh super vielen vielen Dank euch. Bin leider bei meiner Suche nicht auf die SqlBulkCopy gekommen, weil ich Bulk automatisch mit einem Datei gestützten Import impliziert habe.
Nächstes mal suche ich besser ! 😉