![]() |
Datenbank: MySQL • Version: 5.0 • Zugriff über: ZEOS
Zugriff auf MySQL kreuzlangsam
Hallo Leute,
also ich hab ein Projekt in dem ich auf eine Tabelle mit 40000 Zeilen und ca 30 Spalten zugreife. Eine abfrage
Code:
dauert im MySQL-Administrator ca 60-70 ms.
select feld1, feld2, feld3, feld4, feld5, feld6 from main where Kennzeichen="blabla"
Über Zeos, dauert ein query.active:=true mit exakt dem gleichen Statement satte 4 Sekunden. Zeos wird doch nicht sooo langsam sein. Kann ich mir gar nicht vorstellen. Das ganze unter D7 und Zeos 6.6.6-stable. |
AW: Zugriff auf MySQL kreuzlangsam
Baust du beim "query.active:=true" die Verbindung auf oder ist diese bereits aufgebaut?
|
AW: Zugriff auf MySQL kreuzlangsam
Nein, die Connection ist bereits verbunden. Ich hab jetzt auch noch mal ein Testprojekt geschreiben mit lediglich einer Connection und einem Query umd die Zeit zu messen und um andere Beeinflussungen zu vermeiden. Beim ersten Zugriff, 4 Sekunden, danach sind es nur noch 40 ms. Stoppe ich den MySQL-Server und starte ihn neu, dann sind es wieder 1 mal 4 Sekunden und danach nur noch 40 ms.
Daraus schieße ich, dass der MySQL-Server das Anfrageergebnis cached. Was im Testsystem funktioniert. Im richtigen Betrieb aber, fallen zu viele Abfragen an, so dass die Abfrage immer neu aufgebaut werden muß, was wohl zu diesen langen Abfragezeiten führt. |
AW: Zugriff auf MySQL kreuzlangsam
Schau mal die Konfig wieviel Speicher sich der MySQL-Server genehmigen darf. Diese ist teilweise auf wenige MB eingestellt obwohl der Server/Rechner 8 und mehr GB hat.
|
AW: Zugriff auf MySQL kreuzlangsam
Hat nicht wirklich viel geändert. Ich habe von meiner Anwendung noch eine ältere Version, die an einer bestimmten Stelle haargenau das gleiche macht (hab ich in der zwischenzeit nicht verändert) aber diese Abfrage statt in 4 Sek in nicht mal 1 Sek macht.
Das ganze wundert mich schon sehr. Leider hab ich mir den Source von damals nicht aufgehoben. Das dumme an der Sache ist, dass diese Abfrage aus Sicht des Anwenders eine Wartezeit darstellt, die auch so aussehen könnte als wenn die Anwendung nicht reagiert. Möglicherweise könnte ich die benötigte Abfrage auch nach dem Fensteraufbau durchführen, müste diese aber dann in eine Thread auslagern. Nur weiß ich dabei nicht wir ich das machen soll. Meine Kenntnisse über Threads sind eher theoretischer Natur ;-) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz