Seite 2 von 2

Verfasst: 29.03.2006 17:13
von Lexor
Vielen Dank Euch allen...

konnte das Problem mit dem LOAD DATA INFILE ebenfalls lösen.


Die Geschwindigkeit ist gut, auch wenn jetzt natürlich der Export aus dem WaWi etwas länger dauert (durch das erstellen und füllen der csv Datei).
Der Schreibvorgang ist nun sogar deutlich schneller als bei der ursprünglichen Access DB.
Da sich die Geschwindigkeit damit deutlich mehr als verfünfzigfacht hat, vermute ich ein generelles Performance Problem mit dem INSERT Statment unter diesen speziellen Bedingungen.

Zuvor hatte ich getestet, alle 50k Zeilen in einen String zu packen und den dann mit einem INSERT in die Tabelle zu schreiben.
Außer einem Speicher-Zugriffs-Fehler hat das ab leider nichts gebracht.

Transaction hat leider auch nicht geholfen.

Table Lock hat nichts gebracht.

Auch wenn daran vermutlich niemand wirklich interesse hat ... *gg*, biete ich dennoch jedem gerne den aufs wichtigste geschrumpften Qeulltext an.
Als kleines Dankeschön sozusagen.

Gruß
Dominique

Verfasst: 29.03.2006 22:15
von MonkeyBoogie
Lexor hat geschrieben:Vielen Dank Euch allen...
konnte das Problem mit dem [...] ebenfalls lösen.
Na das ist doch wunderbar :)
Lexor hat geschrieben:Zuvor hatte ich getestet, alle 50k Zeilen in einen String zu packen und den dann mit einem INSERT in die Tabelle zu schreiben.
Außer einem Speicher-Zugriffs-Fehler hat das ab leider nichts gebracht.

Transaction hat leider auch nicht geholfen.

Table Lock hat nichts gebracht.
Generell muss man dann wohl sagen, das der Bottleneck die Verbindung
zu MySQL ist. Ich habe hier ein Importscript (über PHP), welches mir rund
10 Millionen Datansatze innerhalb von <60Sekunden importiert.
Ich würde Schlußendlich mal darauf tippen, das der Connect (Namensauflösung)
oder das Resultset (zu kleiner Buffer) ein Problem ist.

Verfasst: 21.04.2006 09:39
von PAMKKKKK
MonkeyBoogie hat geschrieben:
Generell muss man dann wohl sagen, das der Bottleneck die Verbindung
zu MySQL ist.
/:-> Für alle die kein denglisch sprechen:
Bottleneck = Flaschenhals = Engpass

Ich sehe das grundsätzlich genauso wie MonkeyBoogie.
Man muss beachten das ODBC sowas wie ein universal übersetzer darstellt.
Alle SQL abfragen die über ODBC gehen, werden also bearbeitet und das kostet Zeit.
Man kann ODBC auch so umschalten das ODBC die anfragen und Antworten nicht mehr bearbeitet und dann weiterschickt, sondern sie direkt weiterschickt.

Ich bevorzuge die direkte Methode ohne ODBC mit der libmysql.dll.
http://www.purebasic.fr/german/viewtopi ... 5858#55858