Hallo,
ich möchte über meine Anwendung (gebundenes Dataset) in eine MySQL Datenbank mehrere tausend Datensätze (aktuell über 600k) importieren. Der Import muss regelmäßig erfolgen, auf die Art der Quelldaten habe ich keinen Einfluss. Ich leere also immer die Tabelle und befülle Sie neu (der Abgleich aller Quelldatensätze mit den bereits vorhandenen dürfte zu lange dauern).
Umgesetzt habe ich es so:
Leider scheint das etwas lange zu dauern, pro Minute werden vielleicht 5000 Datensätze in die Datenbank geschrieben. Gibt es hier eine effizientere Variante? Jeden Datensatz direkt rein schreiben ist auf jeden Fall noch ineffizienter
ich möchte über meine Anwendung (gebundenes Dataset) in eine MySQL Datenbank mehrere tausend Datensätze (aktuell über 600k) importieren. Der Import muss regelmäßig erfolgen, auf die Art der Quelldaten habe ich keinen Einfluss. Ich leere also immer die Tabelle und befülle Sie neu (der Abgleich aller Quelldatensätze mit den bereits vorhandenen dürfte zu lange dauern).
Umgesetzt habe ich es so:
VB.NET-Quellcode
- Dim taSdBelastKost As New dbLeiKaDataSetTableAdapters.tblSdBelastKostTableAdapter
- Dim dtSdBelastKost As New dbLeiKaDataSet.tblSdBelastKostDataTable
- taSdBelastKost.delAlleDaten()
- For Each strZeile As String In System.IO.File.ReadAllLines(strDateiBelastKost)
- strZeile = strZeile.Replace("#", "")
- If strZeile.Length >= 20 Then
- rw = dtSdBelastKost.NewRow
- rw(0) = strZeile.Substring(0, 4)
- rw(1) = strZeile.Substring(8, 11)
- dtSdBelastKost.Rows.Add(rw)
- End If
- Next
- taSdBelastKost.Update(dtSdBelastKost)
Leider scheint das etwas lange zu dauern, pro Minute werden vielleicht 5000 Datensätze in die Datenbank geschrieben. Gibt es hier eine effizientere Variante? Jeden Datensatz direkt rein schreiben ist auf jeden Fall noch ineffizienter