Mailinglisten-Archive |
Hallo Thomas, > Nun soll das ganze eine echte Client-Server-Anwendung werden und ich > habe die Daten nach MySQL (auf nem Linux-Server) portiert, die Tabellen > über MyODBC verknüpft, und die Anwendung leicht angepasst. > RESULTAT: Die Anwendung läuft ca. 10 mal langsamer als zuvor. Wie kann > das sein??? 1. Lief die Anwendung vorher auf einem Netzwerklaufwerk oder lokal? Wenn Sie lokal lief, dann ist zu bedenken, daß nun die Daten zumindest noch über das Netzwerk vom zum mysql-server geschaufelt werden. 2. Access hat manchmal eigene Ansichten was es selbst macht und was MySql machen darf. Z.B. werden bei manchen Joins von Access ersteinmal alle beteiligten ODBC-Tabellen komplett geladen und dann der Rest im Arbeitsspeicher erledigt. Wenn man sicher gehen will, daß mysql die Abfragen auch selbst vorgesetzt bekommen lassen Joins sich am sichersten über Pass-Thru Abfragen in MySql-Syntax realisieren. Hierbei sollte in den Einstellungen der Abfrage natürlich der DSN (Odbc-Datenquellenname) vorgesehen werden (;DSN="meinedb"). Sonst wird jedesmal danach gefragt. Ich kann Dir allerdings nicht sagen, wie effektiv/unproblematisch PassThru-Abfragen bei Aktualisierungen sind. Das wäre zu testen. 3. Wenn die Ergebnismengen groß sind, ist Access mit eigener Datenbank im Vorteil, weil es in der eigenen Datenbank nach Belieben nur einzelne Sätze (z.B. für die Anzeige) entnehmen muß. Bei ODBC-Datenbanken fragt Access dafür gerne mal die gesamte Abfrage/Tabelle an, bevor dann weitergemacht wird. Falls sinnvoll kann man die Ergebnismengen mit LIMIT einschränken. Gruss, Michael Donning --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive