Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBGrid.SelectAll dauert sehr lange (https://www.delphipraxis.net/146192-dbgrid-selectall-dauert-sehr-lange.html)

wadriller 15. Jan 2010 09:35

Datenbank: Sybase • Version: 5 • Zugriff über: BDE

DBGrid.SelectAll dauert sehr lange
 
Hallo zusammen.

Ich hab da mal ein Problem. ;-)

Wir haben eine Anwendung welche auf eine Sybase 5 DB zugreift.
Diese Anwendung sucht zu bestimmten Kriterien die Daten zusammen.

Das dauert ca. 8 Minuten (absolut OK das viele Tabellen beteiligt und die DB sehr viele Daten enthält).

Wenn die Abfrage fertig ist, werden die Daten in einem TRXDBGrid angezeigt.

Das funktioniert alles wunderbar.

Vor kurzem sind wir von Delphi 5 auf Delphi 2007 umgestiegen.

Wenn ich die Anwendung (mit Delphi 5 erstellt) starte und auf dem Grid ein "SelectAll" aufrufe ist direkt alles markiert.

Mach ich das ganze mit der Delphi 2007 Anwendung sieht es so aus als würde die Abfrage aus dem DataSet wieder laufen (dauert also wieder knapp 8 Minuten).

Hab schon anstatt RXDBGRid ein "normales" DBGrid und auch ein JVDBGRID genommen.
Immer mit dem gleichen Ergebnis.

Kennt jemand das Problem ??

Bernhard Geyer 15. Jan 2010 10:09

Re: DBGrid.SelectAll dauert sehr lange
 
Kannst du keine andere Zugriffskompo verwenden (z.B. SQLDirect)? Die BDE wird seit jahren nicht mehr weiterentwickelt und nur notdürftig für neue Delphi-Versionen zum laufen gebraucht. Und solche Problem könnten hier immer auftreten.

wadriller 15. Jan 2010 10:53

Re: DBGrid.SelectAll dauert sehr lange
 
Hi.

Erstmal danke für die schnelle Antwort.
Wir sind aktuell dabei unsere Anwendung auf AnyDAC umzustellen.

Allerdings wird das noch einige Zeit dauern bis wir da neu Beta haben.

Da das Problem allerdings akut bei Kunden auftritt hatte ich gehofft es anders lösen zu können, zumal es mit Delphi 5 ja ging.

wadriller 19. Jan 2010 13:55

Re: DBGrid.SelectAll dauert sehr lange
 
Ich nochmal.

Habe gerade mal auf die schnelle die Anbindung der Applikation ohne BDE per AnyDac gemacht.

Das gleiche Verhalten tritt hier auch auf. Es liegt also nicht an der BDE.

wadriller 20. Jan 2010 10:45

Re: DBGrid.SelectAll dauert sehr lange
 
Habs gefunden.

Es liegt nicht an der BDE.

Es wurde hier auch das SQL Statement geändert wo wir eigentlich sicher waren das dies die Performance steigert.

Vorher wurde hier das Statement

SQL-Code:
Select a,b,c from Tabelle1 where ID in (x,y,z,....)
union
Select a,b,c from Tabelle2 where ID in (x,y,z,....)
ausgeführt. Da Tabelle 2 nicht mehr benötigt wird haben wir den Code geändert auf

SQL-Code:
Select a,b,c from Tabelle1 where ID in (x,y,z,....)
Seither dauert das Grid.SelectALl ewig.

Ich vermute das das Statement mit "Union" die DB gezwungen hat alle Datensätze abzurufen. Daher ging das SelectAll schnell.
Ohne das Union werden wahrscheinlich nur die ersten x Datensätze abgerufen und beim SelectAll der Rest, was dann dauert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 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