CSV => SQLite Imoptgeschwindigkeit
Verfasst: 21.02.2009 10:30
Guten morgen an alle Helfer in der Not
und an alle "Nur Leser"
Mache gerade meine ersten "Gehversuche" mit SQLite.
Um eine Fette Datenbank zu erhalten, importiere ich eine
*.CSV Datei in meine SQLite DB.
1000 Zeilen mit je 8 Reihen. Nur Text
Das funktioniert auch sehr gut mit diesem Code-Teil:
Allerdings braucht das seine Zeit:
1000 Zeilen von CSV nach SQLite => 36sec
Meine voraussichtlich benötigten 107.000 Zeilen würden dann
bei einer satten Stunde liegen (Importierzeit).
Als Test habe ich die Codezeile "DatabaseUpdate(DB, xxxxxx)"
auskommentiert und bin auf eine Verarbeitungszeit
bei 1000 CSV-Zeilen von 16msec gekommen (DB ist natürlich leer).
Dem zufolge verbraucht die Codezeile "DatabaseUpdate(DB, xxxxxx)"
die meiste Zeit.
Kann man dagegen etwas machen ???
Kann man hier an der Speedschraube drehen ???
Für welche Datenmengen setzt man SQLite ein ???
Danke und Grüsse
Walter
und an alle "Nur Leser"
Mache gerade meine ersten "Gehversuche" mit SQLite.
Um eine Fette Datenbank zu erhalten, importiere ich eine
*.CSV Datei in meine SQLite DB.
1000 Zeilen mit je 8 Reihen. Nur Text
Das funktioniert auch sehr gut mit diesem Code-Teil:
Code: Alles auswählen
If ReadFile(1, "c:\000elektor.csv")
StartTime = ElapsedMilliseconds()
For a=1 To 1000
EineZeile.s=ReadString(1)
T1.s="'"+StringField(EineZeile, 6, ";")+"'"
T2.s="'"+StringField(EineZeile, 1, ";")+"'"
T3.s="'"+StringField(EineZeile, 2, ";")+"'"
T4.s="'"+StringField(EineZeile, 3, ";")+"'"
T5.s="'"+StringField(EineZeile, 5, ";")+"'"
T6.s="'"+StringField(EineZeile, 8, ";")+"'"
T7.s="'"+StringField(EineZeile, 4, ";")+"'"
T8.s="'"+StringField(EineZeile, 7, ";")+"'"
DatabaseUpdate(DB, "INSERT INTO Tabelle1 Values ("+T1+","+T2+","+T3+","+T4+","+T5+","+T6+","+T7+","+T8+")")
Next a
Debug ElapsedMilliseconds()-StartTime
CloseFile(1)
EndIf
1000 Zeilen von CSV nach SQLite => 36sec
Meine voraussichtlich benötigten 107.000 Zeilen würden dann
bei einer satten Stunde liegen (Importierzeit).
Als Test habe ich die Codezeile "DatabaseUpdate(DB, xxxxxx)"
auskommentiert und bin auf eine Verarbeitungszeit
bei 1000 CSV-Zeilen von 16msec gekommen (DB ist natürlich leer).
Dem zufolge verbraucht die Codezeile "DatabaseUpdate(DB, xxxxxx)"
die meiste Zeit.
Kann man dagegen etwas machen ???
Kann man hier an der Speedschraube drehen ???
Für welche Datenmengen setzt man SQLite ein ???
Danke und Grüsse
Walter