Moinmoin,
für eine Import Routine aus CSV zu Datenbank (MSSQL, MySQL, Accdb, Mdb) benötigt mein Programm bei einer Singlecore Auslastung von 100% gut 20 Minuten.
Zum Code (Import zu Accdb) …
Die Me.Data.Tables enthält derzeit 6 Tabellen, je zwei davon haben 2 und 12 Spalten. Das gesamte DataSet belegt im Ram etwa 150 mb.
Die Schleife durch die 6 Tabellen benötigt bis zu 20 Minuten.
In der Vergangenheit habe ich schon mehrmals bemerkt, dass der DataAdapter.Update() bei großen Datenmengen sehr lange braucht.
Lässt sich dies beschleunigen, wie macht ihr das?
Freundliche Grüße
für eine Import Routine aus CSV zu Datenbank (MSSQL, MySQL, Accdb, Mdb) benötigt mein Programm bei einer Singlecore Auslastung von 100% gut 20 Minuten.
Zum Code (Import zu Accdb) …
VB.NET-Quellcode
- Dim DT_Data As New Datatable("tbl_Adressen")
- Dim SQLAdapter As New OleDbDataAdapter(Nothing, Conn.Connection)
- Dim CommandBuilder As OleDbCommandBuilder = Nothing
- With SQLAdapter
- For Each Data As DataTable In Me.Data.Tables
- CommandBuilder = New OleDbCommandBuilder(SQLAdapter)
- .SelectCommand = New OleDbCommand("SELECT * FROM " & Data.TableName, New OleDbConnection(CD.ConnectString))
- .MissingSchemaAction = MissingSchemaAction.Add
- .Update(Data)
- Next
- .Dispose()
- End With
- CommandBuilder.Dispose()
- With Conn
- If .ConnectionState = ConnectionState.Open Then .Connection.Close()
- End With
Die Me.Data.Tables enthält derzeit 6 Tabellen, je zwei davon haben 2 und 12 Spalten. Das gesamte DataSet belegt im Ram etwa 150 mb.
Die Schleife durch die 6 Tabellen benötigt bis zu 20 Minuten.
In der Vergangenheit habe ich schon mehrmals bemerkt, dass der DataAdapter.Update() bei großen Datenmengen sehr lange braucht.
Lässt sich dies beschleunigen, wie macht ihr das?
Freundliche Grüße