Lange Wartezeiten bei Remote-Zugriff auf MySQL-Datenbank

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Guido Studer
Beiträge: 3
Registriert: Mi, 17.06.2009 13:47
Wohnort: Basel/Schweiz
Kontaktdaten:

Lange Wartezeiten bei Remote-Zugriff auf MySQL-Datenbank

Beitrag von Guido Studer »

Guten Morgen

Testweise habe ich hier lokal MySQL installiert und greife mit OpenOffice/Base über ODBC darauf zu. Kein Problem, funktioniert alles wunderbar.

Nun habe ich bei meinem Hoster ebenfalls die Möglichkeit, MySQL-Datenbanken zu erstellen und von aussen darauf zuzugreifen. Im Prinzip auch kein Problem, nur eine Kleinigkeit nervt dabei extrem: Sobald ich über OpenOffice/Base eine Tabelle öffne, dauert das eineinhalb bis über zwei Minuten, bis sich etwas tut. Danach scheint alles gut zu laufen, bis ich
eine weitere Tabelle zum Bearbeiten zu öffnen versuche ... Der MySQL Administrator (1.2.17) und andere Programme aus dem MySQL-Paket haben keinerlei Probleme mit dem Zugriff.

Lokale Einrichtung/Client:
- MySQL 5.1.35
- ODBC 5.1
- OpenOffice 3/Base 3.0.1, inzwischen 3.1.0
- Windows XP SR3

Remote-Server:
- MySQL 5.1.30

In der deutschsprachigen MySQL-Newsgroup habe ich dieses Problem geschildert und wir sind bei der Analyse so weit gekommen, dass der Ablauf des Datenaustauschs zwischen Client und Server klarer wurde. Beim Login und der Suche nach Tabellen (SHOW TABLE STATUS LIKE ...) läuft noch alles normal, aber sobald eine Tabelle zur Dateneingabe geöffnet werden soll, sendet OO3/Base eine ellenlange SQL-Query [1] an den Server, welcher dann 90 Sekunden damit beschäftigt ist, (bei meiner äusserst einfachen Datenbank) *kein* Resultat zurück zu liefern, danach versucht es OO3/Base nocheinmal mit demselben Query und erhält wiederum kein Resultat (nach 40 Sekunden). Danach werden die Daten aus der Tabelle übertragen, angezeigt, zur Bearbeitung freigegeben und alles läuft sehr flüssig weiter. Bis ich eine andere Tabelle zu öffnen versuche, dann dauert es wieder 1 1/2 Minuten ...

Ein weiteres Resultat meiner Frage in der MySQL-Newsgroup war, dass der Zugriff auf INFORMATION_SCHEMA grundsätzlich extrem langsam wäre (aber doch nicht *so* langsam, oder?!). In der Folge schob einer der Antworter das Problem auf OpenOffice/Base (wg. der langen SQL-Query) und ein anderer [auch] auf MySQL, weil es - ich zitiere - "entgegen jeder Vernunft kein Data Dictionary hat".

Den Schuldigen suche ich jedoch nicht, sondern nur eine Lösung, wie ich die langen Wartezeiten verkürzen/vermeiden kann. Ich habe diverse Einstellungen bei OO schon ausprobiert, aber nichts brachte irgendeinen Erfolg. Hat irgendwer einen Tipp für mich? Auch Berichte über ähnliche oder abweichende Erfahrungen beim Remote-Zugriff auf MySQL-Datenbanken würden mir schon mal helfen.

Vielen Dank im Voraus.

Gruss - Guido



[1] http://www.g-st.ch/temp/oo3_tabelle_oeffnen.sql
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Lange Wartezeiten bei Remote-Zugriff auf MySQL-Datenbank

Beitrag von hol.sten »

Guido Studer hat geschrieben:Auch Berichte über ähnliche oder abweichende Erfahrungen beim Remote-Zugriff auf MySQL-Datenbanken würden mir schon mal helfen.
Den hier viewtopic.php?f=8&t=24701&start=0&hilit=mysql zum Beispiel? Beschreibt das gleiche Problem.
Guido Studer hat geschrieben:Lokale Einrichtung/Client:
...
- ODBC 5.1
...
Hast du es mal mit JDBC probiert?
Guido Studer
Beiträge: 3
Registriert: Mi, 17.06.2009 13:47
Wohnort: Basel/Schweiz
Kontaktdaten:

Re: Lange Wartezeiten bei Remote-Zugriff auf MySQL-Datenbank

Beitrag von Guido Studer »

Guten Abend
hol.sten hat geschrieben:Den hier viewtopic.php?f=8&t=24701&start=0&hilit=mysql zum Beispiel? Beschreibt das gleiche Problem.
Ja, das könnte ein ähnliches Problem sein, auch wenn ich es aus der Beschreibung heraus nicht unbedingt nachvollziehen kann.
hol.sten hat geschrieben:Hast du es mal mit JDBC probiert?
Nein, das habe ich bisher noch nicht hingekriegt. Da die Wartezeit allerdings nach dem analysierten TCP/IP-Protokoll eher im Bereich des MySQL-Servers entsteht, genauer beim Versuch Angaben zu der zu öffnenden Tabelle erhältlich zu machen, denke ich eher nicht, dass es darauf ankommt, ob JDBC oder ODBC verwendet wird. Und ob das eine nun etwas schneller als das andere läuft mag später beim Feintounig eine Rolle spielen, jetzt geht es eher darum, warum OO3/Base diese Query an den MySQL-Server schickt und warum dies bei einem lokalen Server so schnell, bei einem Remote-Server aber mit derartigen Wartezeiten abgearbeitet wird.

Vielen Dank für Deine Hinweise.

Gruss - Guido
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Lange Wartezeiten bei Remote-Zugriff auf MySQL-Datenbank

Beitrag von hol.sten »

Guido Studer hat geschrieben:
hol.sten hat geschrieben:Hast du es mal mit JDBC probiert?
Nein, das habe ich bisher noch nicht hingekriegt.
Und warum nicht? Welches Problem bereitet dir JDBC?
Guido Studer
Beiträge: 3
Registriert: Mi, 17.06.2009 13:47
Wohnort: Basel/Schweiz
Kontaktdaten:

Gelöst!

Beitrag von Guido Studer »

Guten Morgen
hol.sten hat geschrieben:
Guido Studer hat geschrieben:
hol.sten hat geschrieben:Hast du es mal mit JDBC probiert?
Nein, das habe ich bisher noch nicht hingekriegt.
Und warum nicht? Welches Problem bereitet dir JDBC?
Es war wohl primär ein Verständnisproblem meinerseits bezüglich der Dokumentation, wie mir erscheint. Ein neuerlicher Anlauf hat es jedenfalls gebracht, jetzt läuft auch JDBC.

Das Erfreulichste dabei ist, dass sich die Wartezeiten von mehreren Minuten auf zwei Sekunden verkürzt haben, das Problem also gelöst ist! Ein Blick auf die Ausgabe von Wireshark bezüglich dem MySQL-Protokoll hat nun auch zutage geführt, dass die problematische Query, die so viel Zeit verbrauchte, gar nicht mehr gesendet wird.

Vielen Dank für Deine Hilfe und falls Du noch eine Erklärung für das Ganze hättest, wäre ich Dir für ein paar Kommentare dankbar.

Gruss - Guido
hol.sten
******
Beiträge: 871
Registriert: Fr, 18.11.2005 21:21

Re: Gelöst!

Beitrag von hol.sten »

Guido Studer hat geschrieben:falls Du noch eine Erklärung für das Ganze hättest, wäre ich Dir für ein paar Kommentare dankbar.
Eine Erklärung habe ich nicht. Wenn ich aber in einem Thread in diesem Forum lese "wo besteht eigentlich der Sinn in einer ODBC-Verbindung, wenn es derart lange dauert bis ein paar Daten geladen sind." und dieser Thread die Überschrift "Sinn oder Unsinn von ODBC-Verbindungen zu externem SQL" trägt, da kam mir das Problem bekannt vor und somit lag die Lösung in Form von JDBC auf der Hand, auch wenn du das aus dem Thread nicht herauslesen konntest.
Antworten