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.

Was meinst du mit "legen Sie die Reihenfolge"? Warum spielt es eine Rolle, in welcher Reihenfolge Sie die Zeilen einfügen? Sie sind gespeichert in der Reihenfolge angegeben, in der gruppierten index, unabhängig davon, insertion um.

InformationsquelleAutor Arief | 2012-05-24

Schreibe einen Kommentar