![]() |
Datenbank: Firebrid • Version: 2.5 • Zugriff über: IBX
Abfrage dauert zu lange unter Delphi
Hallo Leite,
ich habe hier ein Problem mit der Laufzeit einer SQL Abfrage Hier die Abfrage:
Delphi-Quellcode:
Ein Index ist jewals auf den Felden Refernz, Eingang, StatusRaus und Materialtyp
Select Refernz,Eingang,StatusRein ,StatusRaus
From Material where Eingang IS NULL and MaterialTyp not in ('Rohre') and StatusRaus <> 'Auftrag noch nicht erzeugt' and Refernz is not NULL Die Tabelle hat ca. 3,8 Mio Datensätze und das Ergebnis sind ca. 1 - 20 Datersätze. Nun aber zum Problem. Ich benutze hier eine TIBQuery um die Daten abzufragen. Wenn ich die Query im Objektinspektor bei Active auf True gestzt so dauert es ca. 8 Sekunden was auch in Ordnung ist. Wenn ich es nun in meinen Programm mache dauert es 5-8 Minten bis die Daten vorliegen. Vor dem Aktivieren Starte ich eine neue Transaction. Was mache ich den falsch ? So langsam weiß ich nicht mehr weitere. Ich haben schon UniDirectional und BufferChuks geändert. Die Version von Delphi ist 7 Es kann doch kein Unterschied sein ob die im Abjektinspektor die Eigenschalt Active auf True setzte oder im Programm ? |
AW: Abfrage dauert zu lange unter Delphi
Und Du bist Dir ganz sicher, das es der gleiche Connection ist? Und andere Fallen gibt es auch nicht? Z.B. berechnete Felder oder irgendwelche Events?
|
AW: Abfrage dauert zu lange unter Delphi
Zitat:
|
AW: Abfrage dauert zu lange unter Delphi
Mach doch mal vor dem Open ein DisableControls und hinterher ein EnableControls.
|
AW: Abfrage dauert zu lange unter Delphi
Es sind halt auch 3.8 Mio records und er macht Stringvergeliche ohne Ende (auch noch mit IN('',...)) ... das kann je nach DBMS und DB-Server (hardware) etwas dauern.
Ich würde einfach mal die zeit messen oder mit einem Admin-Tool die Abfrage laufen lassen und sehen, wie lange das alles ohne das eventuelles Client-Gedönse (Delphi, Events) dauert. Dann würde ich wissen, wo ich ansetzen muss ... |
AW: Abfrage dauert zu lange unter Delphi
Zitat:
Zitat:
|
AW: Abfrage dauert zu lange unter Delphi
Zitat:
Zur Laufzeit werden auch die folgenden bis zu 19 Datensätzen aus den 3,8 Millionen angefordert, und bis die eintreffen, dauert es länger. Beweis: in einem SQL Client Tool die gleiche Abfrage ausführen und bis zum Ende des Resultsets scrollen. |
AW: Abfrage dauert zu lange unter Delphi
Zitat:
Trotzdem gute Idee. Hat mich schon manchen Haarbüschel gekostet... |
AW: Abfrage dauert zu lange unter Delphi
Okay, dann hatte ich etwas überlesen. Ich wollte auch nur die grundlegende Herangehensweise bei solchen Problemen benennen.
Trotzdem sollte man immer alles betrachten (DB-Design, Protokolle, clientseitige Events). |
AW: Abfrage dauert zu lange unter Delphi
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:42 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-2025 by Thomas Breitkreuz