Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi durch Tabelle navigieren langsam (.Next) (https://www.delphipraxis.net/166053-durch-tabelle-navigieren-langsam-next.html)

Lemmy 27. Jan 2012 11:11

Datenbank: Firebird • Version: 2.1 • Zugriff über: IBObjects

durch Tabelle navigieren langsam (.Next)
 
Hi,

großes Projekt mit Delphi 7 und IBObjects, die Kundeninstallationen sind teilweis Embedded Server, teilweise "richtige" FBServer im Netz.

Bei manchen Kunden (bzw. bei diesen bei manchen PCs) gibt es das Problem, dass ein

Delphi-Quellcode:
  Query.First;
  while NOT Query.EOF do
    Query.Next;
  end;
seeeehr lange dauert (grob geschätzt pro Datensatz 1/4 Sekunde). Bei mir am Rechner (und den meisten anderen Rechnern) rast die gesamte Datenmenge der Query (ca. 500 Datensätze) in der Zeit durch. (hier extra der Hinweis: An dem Beispielcode ist NICHTS weggelassen - es wird nur ein Next; ausgeführt! Kein Event keine sonstigen Aktionen).

Was ich ausschließen kann:
1. Netzwerkprobleme: Da das Verhalten teilweise auch bei Embedded-Installationen auftritt
2. Anzeige der Datensätze: Auch wenn ich das an der QUery hängende DBGrid abhänge, gibts kaum einen Geschwindigkeitsvorteil, das Next dauert immer noch verdammt lange
3. generelle PC-Probleme / Installationsprobleme Firebird: Wenn ich das Beispiel oben mit den UIB nachbaue, gibts keinen Geschwindigkeitsunterschied, das Beispiel ist auf allen Rechnern gleich schnell.
3.1 Systemressourcen: In einem Netz mit unterschiedlichen PC-Konfigurationen (BS immer WIn 7 64 Bit) ist ein Client schnell, 4 Clients langsam. Der Schnelle Client hat dabei lediglich 2GByte Hauptspeicher...
4. irgend welche Abhängigkeiten der Query: TestApp mit eigener TIB_Database, Transaction, QUery mit dem COde oben, dauert wieder verdammt lange

Hat irgend jemand ne Idee was ich noch anstellen / ausschließen / eingrenzen kann?

Lemmy 27. Jan 2012 13:43

AW: durch Tabelle navigieren langsam (.Next)
 
Nachtrag:

verflixt.... wenn ich mit der Maus aus meinem Programm raus fahre und diese dann auf den Desktop zeigt, ist die SChleife quasi sofort abgeabreitet... So ein Dreck... Ist immer reproduzierbar... Deutet das jetzt auf einen alten GraKaTreiber hin?

jobo 27. Jan 2012 13:55

AW: durch Tabelle navigieren langsam (.Next)
 
wo ist dann aber der Zusammenhang zu Punkt 2?

Lemmy 27. Jan 2012 14:02

AW: durch Tabelle navigieren langsam (.Next)
 
es gibt keinen... es machte keinen Unterschied ob ich das Grid nun aktiv lasse oder abschalte - wenn die Maus auf dem Form steht bzw. der Applikation, ist diese sehr langsam. WEnn ich auf einen Button klicke der die EOF-Schleife anstößt und ich dann mit der Maus von der App weg fahre, also nur als dem Fensterbereich raus auf den Desktop, schon ist das Ding fertig...

Medium 27. Jan 2012 14:25

AW: durch Tabelle navigieren langsam (.Next)
 
Hast du irgendwas in OnMouseMove-Hanldern oder gar im Application.OnIdle laufen? Gerade optische Mäuse "wackeln" ab und an etwas auch im Stillstand, wodurch diese dann ggf. mehr rödeln als nötig.

Lemmy 27. Jan 2012 14:43

AW: durch Tabelle navigieren langsam (.Next)
 
Hi,

habe mit Delphi 7 eben ne neue Kleinstanwendung gemacht. IBGrid, IBConnection, Transaction und Query und einen Button - das selbe Verhalten. Keine zusätzlichen Events, handler oder sonst was definiert.


Kann leider nicht mit XE/XE2 testen, weil die IBO da nicht funktionieren (vorcompilierte DCUs mit unterschiedlichen Versionen von XYZ...)

Lemmy 27. Jan 2012 16:03

AW: durch Tabelle navigieren langsam (.Next)
 
Hier bitte zu machen und hier weiter:
http://www.delphipraxis.net/166062-d...win-7-x64.html

ist ja kein DB Problem mehr...

Danke!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz