Bulk Insert-Sql-Server-Millionen-Rekord
Ich habe einen Windows-Dienst-Anwendung, die Sie empfängt einen Datenstrom, der mit dem folgenden format
IDX|20120512|075659|00000002|3|AALI |Astra Agro Lestari Tbk. |0|ORDI_PREOPEN|12 |00000001550.00|00000001291.67|00001574745000|00001574745000|00500|XDS1BXO1| |00001574745000|ݤ
IDX|20120512|075659|00000022|3|ALMI |Alumindo Light Metal Industry Tbk. |0|ORDI |33 |00000001300.00|00000001300.00|00000308000000|00000308000000|00500|--U3---2| |00000308000000|õÄ
Diese Daten kommen in Millionen von Zeilen und in der Folge 00000002....00198562
und ich haben zu analysieren, und fügen Sie Sie entsprechend der Reihenfolge in einer Datenbank-Tabelle.
Meine Frage ist, was ist der beste Weg (die effektivste) , fügen Sie diese Daten in meine Datenbank? Ich habe versucht, eine einfache Methode zu öffnen, wird ein SqlConnection-Objekt erzeugen dann ein string der SQL-insert-Skript und dann das Skript ausführen, mit SqlCommand-Objekt, aber diese Methode dauert zu lange.
Ich gelesen, dass ich die Verwendung von Sql BULK INSERT -, aber es hat zum Lesen aus einer Textdatei ist es möglich für dieses Szenario, um mithilfe von BULK INSERT? (Ich habe es nie benutzt, bevor).
Danke
update: ich bin mir dessen bewusst, SqlBulkCopy aber es verlangt von mir zu haben DataTable Erstens ist dies gut für die performance? Wenn möglich möchte ich einfügen direkt aus meiner Datenquelle für SQL Server, ohne dass im Speicher DataTable.
InformationsquelleAutor Arief | 2012-05-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie schriftlich sind diese in C# vielleicht möchten Sie sich an der SqlBulkCopy Klasse.
Hallo Mark, vielen Dank für deine Antwort, ich habe aktualisiert mein Frage. Könnten Sie kommentieren, bitte? danke.
Siehe @TomTom ' s Kommentar.
InformationsquelleAutor Mark Byers
Ersten, download free LumenWorks.Rahmen.IO.Csv - Bibliothek.
Zweite, verwenden Sie code wie diesen
Yeah, es ist wirklich so einfach.
Hi, das einfügen von Werten mit einer check? z.B. ich möchte, um zu überprüfen, ob der Datensatz vorhanden ist oder nicht in der db, falls vorhanden, möchte ich anfügen auf andere Tabelle
Es wird nicht gonna be bulk "einfügen" nicht mehr. Aber eine regelmäßige one-by-one.
Sie müssen die Verarbeitung der Idee, die Verwendung von bulk insert zu schieben in der Tabelle Ein, Sie können dann eine Verknüpfung auf dem anderen Tisch zu fahren, die Entscheidung, wohin damit; - Datenbanken verwendet werden soll für set-basierte Operationen, die Sie ausführen, richtig schlecht auf die Reihe basiert
InformationsquelleAutor Vasyl Boroviak
Können Sie mit dem SSIS-SQL Server Integration Service" Für die Konvertierung der Daten Aus dem Source Data Flow Zu Distination Daten Fließen.
Quelle Text-Datei und die Ziel-SQL-Server-Tabelle-Datei. und Konvertieren Ausführen der Bulk Insert-Modus.
InformationsquelleAutor mehdi lotfi