Große Datenmengen in Accdb exportieren

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Große Datenmengen in Accdb exportieren

    Moinmoin,

    ich habe hier eine DHL Datei (Text, Formatierung liegt mir als PDF vor) mit Adressen, Postleitzahlen und Orten und Ortsteilen. Postleitzahlen, Orte und Ortsteile sind zusammen etwa 300.000, was noch relativ schnell geht. Die Straßen hingegen dauern, da dies etwa 1,3 Mio. Datensätze sind.

    Diese lese ich über den StreamReader zeilenweise ein und generiere daraus ein DataSet mit mehreren DataTables.
    Mit DataAdapter.Update(DataSet) dauert der Export der Daten zur Access DB etwa so lange wie der Bau der Pyramiden mit zwei deutschen Facharbeitern.

    Zum Testen habe ich das selbe DataSet auch mal mit SqlBulkInsert in einen Sql-Server geschupst und das ging schneller als gedacht, inklusive einlesen der Daten und füllen des DataSets keine 3 Minuten.
    Allerdings benötige ich die Daten als Access Db, wofür es, nach meinem Wissen, keinen (kostenlosen) Bulk-Insert gibt.

    Alternativ habe ich auch versucht, aus den zu schreibenden Datensätzen einzelne Insert-Statements zu erstellen, dabei über dem OledbCommand eine OledbTransaction gesetzt, welche am Ende ein Commit ausführt um die Daten zu übernehmen. Angeblich soll dies schneller sein, als sie direkt über .ExecuteNonquery() zu schreiben, was ich aber bei 1,3 Mio. Datensätzen nicht wirklich bemerken konnte.

    Lange Rede, kurzer Sinn: habt ihr einen besseren Vorschlag?

    Grüße :)