Entwickler-Ecke

Datenbanken - Geschwindigkeits Problem mit Datensatz Import


Live5 - Sa 10.10.09 14:57
Titel: Geschwindigkeits Problem mit Datensatz Import
Hallo Leute,

Also ich habe das Problem das ca. 300.000 Datensätze in 1 Stunde Importieren sein sollten.

Ich verwende die Komponente "NativeDB" und zum Verbinden "TAsaSqlQuery" um alles zu Beschleunigen habe ich
den Cursor Typ auf "actFixedScroll" gestellt.

Ich teile derezeit zb. 20.000 Datensätze auf 5 Threads auf.
Die Threads tragen die die Daten dann in die Datenbank gleichzeitig ein und dafür benötige ich ca. 30 Minuten.

Damit ich 300.000 Datensätze in 1 Stunde schaffe müsste ich im gesammten ca. 40 Threads verwenden jedoch währe die zu Verwalten ein enormer aufwand.

Ich währe für die Hilfe echt dankbar :wink:

cu
live5


jfheins - Sa 10.10.09 15:08

Hast du in der Tabelle Indizes? Wenn ja welche?

Welche Netzwerkverbindung hast du? Wie groß sind die Datensätze insgesamt?

Bist du sicher, dass es mit den Thread schneller geht als ohne?


Live5 - Sa 10.10.09 15:13

Nein ich verwende keine Indizies.

Die Datenbank Läuft Lokal auf meinem PC.

Fals es dir was sagt es geht um DATANORM 5 sprich es werden auch noch berechnungen durchgeführt vom preis usw. bevor etwas eingetragen wird.

Ich habe das ganze zuerst ohne Threads versucht und benötigte dafür noch länger.


MAlsleben - Di 13.10.09 11:48

Hi,

das Problem liegt eventl. an der Db bzw. am Db-Server. In deinem Fall also Dein lokaler PC.
Ich habe z.B. eine 30 MB große Access Datei mit 85000 Datensätzen in 10 Minuten in eine entsprechend starke Backend DB mit Delphi importiert. Wenn deine einzelnen Datensätze nicht exorbitant groß sind, sollte Delphi in deinem Fall nicht das Problem sein.

Gruß Micha.


Renegade - Di 13.10.09 12:07

Ich kenne die Datenbank nicht und konnte in der Hilfe auf die schnelle keinen passenden Hinweis finden.
Bei anderen SQl-Servern bewirkt ein "START TRANSACTION" und "COMMIT" Wunder.