Langsamer MySQL-Datenbank-Zugriff
hans35
- datenbank
0 Klawischnigg0 Hans35
Hallo,
ich will auf eine MySQL-Datenbank zugreifen, die auf einem (privaten) Server (über dyndns.org) abgelegt ist. Mit einem Testprogramm unter Linux Gambas (einer VirtualBasic-ähnlichen Sprache) funktioniert der Datenbank-Zugriff auch einwandfrei und schnell.
Das Projekt, das ich bearbeite, läuft jedoch unter Windows XP mittels VB.NET. Und da habe ich Problem mit dem Datenbankzugriff, weil der viel zu langsam ist. Genauer: Jeder Aufruf der Datenbank, ob Lesen oder Schreiben, ob mit viel oder wenig Datentransfer, benötigt etwa 2 Sekunden, zzgl. (bei hohen Datenmengen) etwa der Zeit, die Gambas braucht. Das ist für meine Anwendung unbrauchbar.
Ich verwende als Connector MysSql.Data.MySqlClient 1.0.8, ich hab es aber auch mit einem älteren Connector (1.0.4) versucht, mit demselben Ergebnis. Weiterhin habe ich es mit dem ODBC-Connector versucht, da war die Wartezeit geringer, mämlich eine Sekunde plus Transferzeit, also auch noch unbrauchbar.
Wo könnten die ein bzw. 2 Sekunden verbraten werden? Ich habe keine Idee, wo und wie ich noch suchen kann. Da es bei jedem Zugriff neu passiert, hatte ich schon ein DNS-Problem in Verdacht, aber ich weiß nicht, wo da etwas falsch eingestellt sein könnte. Jeder andere Internetzugriff hat jedenfalls keine solche Wartezeit. Und auch eine als Localhost (Apache/Foxserver) eingerichtete Datenbank wird vom VB.Net-Programm ohne "Wartezeit" augelesen.
Im übrigen läuft bei mir Linux mit dem (schnellen) Gambas unter demselben Windows-XP (mittels VmWare), also auch mit derselben Hardware.
Hat jemand eine Idee?
Gruß
Hans35
Hi there,
Hat jemand eine Idee?
Hatte einmal ein ähnliches Problem, schuld war damals die Firewall (Zonealarm professionel)...
Hallo,
sorry, dass ich erst jetzt antworten kann (es kam beruflich was dazwischen).
Nein, an der Firewall (Kerio) liegt es nicht, alles ist bei abgeschalteter Firewall unverändert. Aber da in der Nähe, beim Verbindungsaufbau, scheint mir das Problem schon irgendwo zu stecken...
Wie kann da aber überhaupt eine so regelmäßige Verzögerung entstehen? Es ist, als ob ein Parameter auf 2000 msec gesetzt worden ist, aber wo?
Der Fehler scheint letztlich irgendwo in der exe-Datei mit drinstecken, weil die "Wartezeit" auch da ist, wenn die Exe statt auf dem Notebook auf dem PC ausgeführt wird.
Gruß
Hans35
Der Fehler scheint letztlich irgendwo in der exe-Datei mit drinstecken, weil die "Wartezeit" auch da ist, wenn die Exe statt auf dem Notebook auf dem PC ausgeführt wird.
1.) Wenn das der Fall ist, hättest Du versuchen sollen das Problem bestmöglich zu isolieren. "Irgendwo" funzt net.
2.) Ist es möglich die Verbindung zum DS über verschiedene Netzwerkbibliotheken, also verschiedene Treiber, auszuführen? Alles mal durchprovieren (TCP/IP stacks, named pipes, ODBC und was es da so alles gibt).