AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Speicherverbrauch Zeoslib auf Postgres
Thema durchsuchen
Ansicht
Themen-Optionen

Speicherverbrauch Zeoslib auf Postgres

Ein Thema von Starsky911 · begonnen am 9. Mai 2008 · letzter Beitrag vom 15. Mai 2008
Antwort Antwort
Seite 2 von 3     12 3      
BloodySmartie
(Gast)

n/a Beiträge
 
#11

Re: Speicherverbrauch Zeoslib auf Postgres

  Alt 13. Mai 2008, 17:36
Ich hatte das Problem auch schonmal. Ich behaupte, es liegt an Deiner Abfrage:

SELECT * FROM kunde; Damit werden alle Datensätze aus der DB in den Speicher(Records der TZQuery-Komponente) geladen. Setz' mal ein LIMIT 35000 an die Abfrage dran. Dein Speicherverbrauch dürfte sich dann halbieren.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#12

Re: Speicherverbrauch Zeoslib auf Postgres

  Alt 13. Mai 2008, 21:02
Wie kommst du überhaupt auf die 2 GB ? Wirklich 2 GB oder etwa 2 MB ? Vom Taskmanager oder woher stammt diese Zahl ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Starsky911

Registriert seit: 8. Feb 2008
Ort: Bremen
96 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: Speicherverbrauch Zeoslib auf Postgres

  Alt 13. Mai 2008, 21:26
Hallo zusammen

@BloodySmartie
die Vermutung hatte ich auch und hatte es
mit Feldangaben im SELECT-Statement getestet.
Hat aber auch nichts gebracht.
Mit dem LIMIT ist mir auch klar aber das Problem
ist das es nicht sein kann, dass die Abfrage im
Speicher über 50 x größer ist als die gesamte Tabellengröße.
Wie oben beschrieben, wenn ich den ZQuery auf
Readonly=true oder die Verbindung zum DBGrid löse,
verhält sich die Zeos-Query Komponente ja ganz normal.

@Hansa
beim Daten laden beobachte ich den Taskmanager wie der
durch die Decke geht. Wenn die Delphi-IDE über 2GB
geht, verabschiedet sich die komplette IDE.
Ich habe es auch alleine mit der erstellten Anwendung
probiert, verhält sich genau so.

Starsky
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#14

Re: Speicherverbrauch Zeoslib auf Postgres

  Alt 14. Mai 2008, 02:16
Bei Dir stimmt aber wohl nix. Was treibst du da ? Ich habe folgendes getestet :

Delphi-Quellcode:
  AusgabeDS.Close;
  AusgabeDS.SelectSQL.Text := 'SELECT * FROM TABLEX';
  AusgabeDS.Open;
ShowMessage('');
memo2.Hide;
while not AusgabeDS.Eof do begin
  memo2.Lines.Add(AusgabeDS.Fieldbyname ('ID').AsString);
  AusgabeDS.Next;
end;
memo2.Show;
Die TABLEX hat ca. 250.000 DS mit Volumen von insgesamt 30 MB. Ich habe das mal in eines meiner relativ wichtigen Programme eingebaut. Speicher beim Start : 5,8 MB. Wird das SQL-Statement abgesetzt, so steigt der auf 24 MB. Wird die entsprechende Form geschlossen, dann sind es wieder 6,4 MB. Das sind realistische Werte. Bevor hier einer unnötig überlegt : die 30 MB kommen von der Größe einer importierten Tabelle. Die in der DB tatsächlich vorhandene (weil veränderte) hat wohl 15-20 MB, das passt. 2 GB sind IMHO völlig unrealistisch. Wie hast Du das fertiggebracht ? Interessant ist auch das Zeitverhalten. Die leere Showmessgae kommt sofort. DS für DS da durchzuwandern dauert eben. Ohne daurnde Windows Bildschirm-Aktualisierung, also Memo.Hide << 1 Min, ansonsten 3-4 Min. 8). Basis dabei ist allerdings FIBPlus.

Aaaaahh, sehe gerade Postgre. Dann eben außer Zeos auch noch das noch. Tut sich da noch was ? Es sird merkwürdig ruhig drum.
Gruß
Hansa
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Speicherverbrauch Zeoslib auf Postgres

  Alt 14. Mai 2008, 06:35
@Hansa: Di vergleichst mal wieder Äpfel mit Birnen. Das Verhalten einer Anwendung die per FIBplus auf FireBird zugreift, kann sich durchaus von der per Zeos auf PosGres zugreifenden unterscheiden. Obwohl das DBMS hier wohl egal ist, da es nicht lokal läuft.
Markus Kinzler
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Speicherverbrauch Zeoslib auf Postgres

  Alt 14. Mai 2008, 06:42
Hallo,

welche ZEOS-Version ?
Ich denke, es ist ein Bug in ZEOS.
Ich würde mir mal die allerneuste Version mal laden (Forum-Suche).

Dass ein DBGrid mehr Speicher verbrät sollte klar sein
(das zugrundeliegende DataSet muss bidirectional sein).

1. Probier mal ZQuery.Filtered := True;
Habe ich über Google gefunden

2. TClientDataSet
Packe die Daten aus der Query dort rein
und benutze dass mal als DBGrid-DataSet.

Nur mal so zum Test.

Gibt es nicht auch nen ZEOS-Forum (http://zeos.firmos.at) ?


Heiko
Heiko
  Mit Zitat antworten Zitat
Starsky911

Registriert seit: 8. Feb 2008
Ort: Bremen
96 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Speicherverbrauch Zeoslib auf Postgres

  Alt 14. Mai 2008, 08:56
Hallo zusammen,

@Heiko
Ich benutze die Zeos-Version 6.6.2-rc
Eine neuere gibt meines Wissens nicht.
Ich hatte schon überlegt es mit der vorherigen
Version 6.6.1-Beta zu probieren.
Aber das mit dem ClientDataset ist eine gute
Idee, dass werde ich heute Abend sofort testen.

Hat denn schon irgendjemand die Zeos-Komponente
Version 6.6.2-rc mit den PostgreSQL erfolgreich
am laufen?

Starsky
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#18

Re: Speicherverbrauch Zeoslib auf Postgres

  Alt 14. Mai 2008, 09:01
Hallo,

und denk an das

ZQuery.Filtered := True;

Auch wenn (und gerade wenn) du keinen Filter benutzt (so stand es in google).


Heiko
Heiko
  Mit Zitat antworten Zitat
Starsky911

Registriert seit: 8. Feb 2008
Ort: Bremen
96 Beiträge
 
Delphi 11 Alexandria
 
#19

Re: Speicherverbrauch Zeoslib auf Postgres

  Alt 14. Mai 2008, 09:19
Hallo Heiko

auch den ZQuery.Filtered:=True werde ich testen.
Danke für die Tipps.

Starsky
  Mit Zitat antworten Zitat
Starsky911

Registriert seit: 8. Feb 2008
Ort: Bremen
96 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: Speicherverbrauch Zeoslib auf Postgres

  Alt 14. Mai 2008, 20:29
Hallo zusammen,

@Heiko:
Volltreffer, mit dem Filtered:=true hat geholfen.
Könntest Du mir deinen Google-Link zukommen lassen
wo Du deine Info her hast?
Bei mir spuckt Goggle zu dem Thema nichts aus!
Wenn ich den ZQuery mit gesetzten Filter (ohne Filterdefinition)
auf Active:=true setze ist der Speicherverbrauch absolut in Ordnung.
Wenn ich dann ZQuery.Filtered:=false setze geht der Speicher
von vorher 4MB auf 234MB (mit meiner 7000 Datensätze Tabelle)
Naja, so habe ich erstmal eine Lösung um mit der Zeoslib zu testen
aber das richtige Vertrauen habe ich so in der Komponente nicht.

Erstmal vielen Dank an Heiko und allen anderen

Starsky
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 13:37 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