AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Abfrage dauert zu lange unter Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Abfrage dauert zu lange unter Delphi

Ein Thema von Dumpfbacke · begonnen am 7. Jan 2015 · letzter Beitrag vom 8. Jan 2015
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Abfrage dauert zu lange unter Delphi

  Alt 7. Jan 2015, 09:05
Datenbank: Firebrid • Version: 2.5 • Zugriff über: IBX
Hallo Leite,
ich habe hier ein Problem mit der Laufzeit einer SQL Abfrage

Hier die Abfrage:
Delphi-Quellcode:
Select Refernz,Eingang,StatusRein ,StatusRaus
From Material
where Eingang IS NULL and MaterialTyp not in ('Rohre')
and StatusRaus <> 'Auftrag noch nicht erzeugtand Refernz is not NULL
Ein Index ist jewals auf den Felden Refernz, Eingang, StatusRaus und Materialtyp
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 ?
Tanja
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#2

AW: Abfrage dauert zu lange unter Delphi

  Alt 7. Jan 2015, 09:08
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?
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

AW: Abfrage dauert zu lange unter Delphi

  Alt 7. Jan 2015, 09:09
ich habe hier ein Problem mit der Laufzeit einer SQL Abfrage
[...]
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.
Hängt an der Query noch irgendwas an Ereignissen im AfterOpen, AfterScroll, oder Ähnliches? Oder sind da noch Dinge dran gebunden, wo Ereignisse dran hängen, die lange dauern?
Jens
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.354 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Abfrage dauert zu lange unter Delphi

  Alt 7. Jan 2015, 09:25
Mach doch mal vor dem Open ein DisableControls und hinterher ein EnableControls.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
192 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Abfrage dauert zu lange unter Delphi

  Alt 7. Jan 2015, 09:52
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 ...
Thomas Forget
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.442 Beiträge
 
Delphi 12 Athens
 
#6

AW: Abfrage dauert zu lange unter Delphi

  Alt 7. Jan 2015, 10:29
wie lange das alles ohne das eventuelles Client-Gedönse (Delphi, Events) dauert.
Wir wissen bereits, daß es in der IDE ca. 8 Sekunden dauert:
Zitat:
Wenn ich die Query im Objektinspektor bei Active auf True gestzt so dauert es ca. 8 Sekunden was auch in Ordnung ist.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#7

AW: Abfrage dauert zu lange unter Delphi

  Alt 7. Jan 2015, 10:48
Ein Index ist jewals auf den Felden Refernz, Eingang, StatusRaus und Materialtyp
Die Tabelle hat ca. 3,8 Mio Datensätze und das Ergebnis sind ca. 1 - 20 Datersätze.
Wenn die Query innerhalb von 8 Sekunden geöffnet wird, so heisst das meistens, dass nur der erste Datensatz da ist.
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.
Michael Justin
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#8

AW: Abfrage dauert zu lange unter Delphi

  Alt 7. Jan 2015, 11:17
Wenn die Query innerhalb von 8 Sekunden geöffnet wird, so heisst das meistens, dass nur der erste Datensatz da ist.
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.
Er spricht vom Objektinspektor. Ist das dann da auch so? Im OI dauert das Öffnen 8 Sekunden, im Programm wesentlich länger.

Trotzdem gute Idee. Hat mich schon manchen Haarbüschel gekostet...
  Mit Zitat antworten Zitat
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
192 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Abfrage dauert zu lange unter Delphi

  Alt 7. Jan 2015, 11:32
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).
Thomas Forget
  Mit Zitat antworten Zitat
Dumpfbacke

Registriert seit: 10. Mär 2005
Ort: Mitten in Deutschland
332 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Abfrage dauert zu lange unter Delphi

  Alt 7. Jan 2015, 14:18
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?
Ja so ist es. Es sind keine Events und keine berechnetet Felder vorhande.
Tanja
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:49 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