Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Geschwindigkeitsprobleme beim Aktualisieren (https://www.delphipraxis.net/19129-geschwindigkeitsprobleme-beim-aktualisieren.html)

mojo777 29. Mär 2004 22:00


Geschwindigkeitsprobleme beim Aktualisieren
 
Hallo,

ich verspüre derzeit krasse Geschwindigkeitsprobleme beim Aktualiseiren der Tabellen mit SQL.

Ich benutze momentan sql.close;
und sql.Open;
gibt es bessere Möglichkeiten?

Es werden SQL-Parameter an die SQL_QUERY übergeben
Delphi-Quellcode:
(sqltable.ParamByName('EAN').Value:='12345';)
Hier ist der (fast) komplette code:
kommt wenn man btn_refresh anklickt:
Delphi-Quellcode:
    dmData.QRY_LIEFERUNGEN.Active:=False;
    dmData.QRY_LIEFERUNGEN.Close;
    dmData.QRY_LIEFERUNGEN.ParamByName('EAN').Value:=dmData.ibProdukte_FilteredEAN.AsString;
    dmData.QRY_LIEFERUNGEN.Open;
    dmData.QRY_LIEFERUNGEN.Active:=True;
Danke für Eure Hilfe.

Robert_G 29. Mär 2004 22:10

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
Führe die Query mal ohne den ganzen DB-Kompo-Krams aus.
Ich denke da liegt das Problem, oder aber der Cache deiner DB wurde etwas knapp bemessen (sie kann die Ergebnismenge nicht im Cache halten).

Standardfrage #13: Welche DB benutzt du?

mojo777 29. Mär 2004 22:16

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
Delphi-Quellcode:
if key=#13 then
begin
return:='interbase';
end;

Robert_G 29. Mär 2004 22:29

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
Mit DB-Kompo-Krams meinte ich DataSource & Co.

p.s.: Das mit der DB tut mir leid... ( :mrgreen: )

mojo777 29. Mär 2004 22:39

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
aso...
Bufferchunks steht auf 1000
äähmmmm ich habe hier mal ein screenshot beigefügt... guck ihn dir mal an.. vielleicht ist da was bei,was du meinst.. :roll:

Robert_G 29. Mär 2004 22:46

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
Die von mir gemeinten Einstellungen muss man an der DB selbst vornehmen (Frag's Pferd ob es das bei IB gibt).
Im Normalfall sind die Standardwerte schon ziemlich OK.
Meine Frage war aber seit dem ersten Post, ob es nur so langsam ist, wenn eine DataSource & diese ganzen DB-Kompos (DBEdit, DBGrid,...) dranhängen.

Edit: verkehrt formuliert, aber richtig verstanden worden :zwinker:

mojo777 29. Mär 2004 22:50

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
Zitat:

Meine Frage war aber seit dem ersten Post, ob es immer noch so langsam ist, wenn eine DataSource & diese ganzen DB-Kompos (DBEdit, DBGrid,...) dranhängen.
joah.
bei mir hängt ein Grid dran.... :(

mojo777 29. Mär 2004 23:22

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
....sogar ein ibTable.Locate(); dauert bis zu 10 sekunden.... AAAARGHH!!!
WAS KANN DAS SEIN??? :wall:

kiar 29. Mär 2004 23:24

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
hallo, läuft deine db lokal oder im netz?

mojo777 29. Mär 2004 23:32

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
lokal... das ist ja das schlimme!

kiar 29. Mär 2004 23:36

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
der zugriff über BDE?

schau mal hier http://www.entwickler-forum.de/ und starte mal die suche Interbase langsam
vielleicht ist dort dei Problemlösung mit dabei?

raik

mojo777 29. Mär 2004 23:39

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
nein, über interbase komponenten.
--
der fehler ist aber erst seit heute morgen da...
ich habe ihn gemerkt, als ich das programm auf einem anderen computer laufen lassen hab.
ich dachte schon, dass wieder der celeron spinnt oder sowas... aber nein..

kann das vielleicht sein, dass die gdb datei beschädigt ist???
:freak:

also ich weiss echt nicht mehr, wo ich was suchen soll..... es muss an der gdb liegen... ich werde gleich eine ähnliche erzeugen (leer) und versuchen sie mir paar werten zu füllen. mal gucken was dann passiert....

kiar 29. Mär 2004 23:40

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
hane link editiert siehe oben

raik

mojo777 29. Mär 2004 23:47

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
ok. werde ich dann mal tun.
danke.

shmia 30. Mär 2004 07:26

Re: Geschwindigkeitsprobleme beim Aktualisieren
 
Entscheidend ist, ob auf dem Feld EAN ein Index liegt oder nicht. :warn:
Falls ja, dauert die Abfrage unter 0.5 Sekunden; falls nein,
dauert es wesentlich länger, weil die gesamte Tabelle durchsucht werden
muss (Full Table Scan).

Übrigens:
Datenmenge.Active := False;
ist das Gleiche wie
Datenmenge.Close;
In deinem Fall wird also doppelt gemoppelt.

Ausserdem:
Anstatt die Datenmenge zu schliesen und erneut zu öffnen, könnte der Aufruf von
Refresh oder Requery deutlich schneller sein.

Delphi-Quellcode:
  dmData.QRY_LIEFERUNGEN.ParamByName('EAN').Value:=dmData.ibProdukte_FilteredEAN.AsString;
  if dmData.QRY_LIEFERUNGEN.Active then
     dmData.QRY_LIEFERUNGEN.Requery
  else
     dmData.QRY_LIEFERUNGEN.Open;


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