Ich möchte ein Xbase-Projekt bei dem z.T. große DBF-Tabellen einer ADS-Datenbank verwendet werden, auf PostgreSQL umstellen. Ich konnte bisher kleinere und mittelgroße Tabellen importieren und über DacSqlStatements darauf zugreifen was jedoch mit großem Anpassungsaufwand in den Sourcen verbunden ist und zudem sind die Datenzugriffe bei größeren Datenmengen extrem inperformant.
Hat jemand Erfahrung wie man mit der PGDBE am besten große Tabellen (mit mehreren Mio. Records) in einer Workarea öffnen und mit SEEK (oder DBSeek()) auf bestimmte Datensätze positionieren kann ?
Große Datenmengen mit PGDBE
Moderator: Moderatoren
- Marcus Herz
- 1000 working lines a day
- Beiträge: 861
- Registriert: Mo, 16. Jan 2006 8:13
- Wohnort: Allgäu
- Hat sich bedankt: 39 Mal
- Danksagung erhalten: 197 Mal
- Kontaktdaten:
Re: Große Datenmengen mit PGDBE
Ich glaub, da musst du wirklich auf SQL gehen.
Die ISAM Emulation in Verbindung mit PGDBE ist da zu langsam.
Da stimmt auch das Konzept nicht mehr. Da PostgreSQL keine Satzzeiger hat, sollte man dann mit SELECT ... WHERE die Ergebnismenge eingrenzen.
Allein schon weil der PostGreSQL Server auf seiner Seite eine Kopie der Daten in sein RAM legt.
Die ISAM Emulation in Verbindung mit PGDBE ist da zu langsam.
Da stimmt auch das Konzept nicht mehr. Da PostgreSQL keine Satzzeiger hat, sollte man dann mit SELECT ... WHERE die Ergebnismenge eingrenzen.
Allein schon weil der PostGreSQL Server auf seiner Seite eine Kopie der Daten in sein RAM legt.
Gruß Marcus
Den Kopf in den Sand zu stecken verbessert die Welt auch nicht.
Den Kopf in den Sand zu stecken verbessert die Welt auch nicht.
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9388
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 362 Mal
- Kontaktdaten:
Re: Große Datenmengen mit PGDBE
Die PGDBE ist während der letzten Monate dramatisch besser geworden, aber bei sehr großen Datenmenge stößt die ISAM-Emulation immer noch an ihre Grenzen. Es spricht aber nichts dagegen, zwei DBEs zugleich zu verwenden; das kann Xbase++. Organisatorisch müsste man aber Tabellen, die man zwar mit PG, aber nicht mit PGDBE nutzen möchte, in einer gesonderten Datenbank unterbringen, würde ich meinen.
Herzlich,
Tom
Tom
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2518
- Registriert: Mi, 28. Jul 2010 17:16
- Hat sich bedankt: 12 Mal
- Danksagung erhalten: 77 Mal
Re: Große Datenmengen mit PGDBE
Am besten vergisst du die ISAM Emu so schnell wie möglich. Ich kann dir aus eigener, mit viel Aufwand gewonnenen Erfahrungen nur empfehlen normale PG Tabellen zu benutzen. Ob du dies über die PGDBE oder gleich direkt mit eigenem Code nativ machst ist die nächste Frage.
Allerdings musst du für diese Varianten deinen gesamten Source-Code überarbeiten. Wirst dafür auch mit einer schnell und perfekt funktionierenden Datenbank belohnt.
Ich habe eine Tabelle mit ca. 800 Mio. Datensätzen das läuft einwandfrei. Allerdings mit eigenem Nativen Code ohne nutzen der PGDBE, ISAM-EMU und UPSIZE.
Ist die PGDBE in den letzten Monaten wirklich besser geworden? Es gab in den letzten Monaten ja gar *NICHTS* neues von Alaska. Die letzte Version ist die vom Januar 2020.
Valar Morghulis
Gruss Carlo
Gruss Carlo