Große Datenmengen mit PGDBE

Hier dreht es sich um den PostGre Server

Moderator: Moderatoren

Antworten
SDaniel
Rookie
Rookie
Beiträge: 1
Registriert: So, 24. Mai 2020 22:40
Wohnort: Bornheim
Hat sich bedankt: 3 Mal

Große Datenmengen mit PGDBE

Beitrag von SDaniel »

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 ?
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Große Datenmengen mit PGDBE

Beitrag von Marcus Herz »

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.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Große Datenmengen mit PGDBE

Beitrag von Tom »

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
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Große Datenmengen mit PGDBE

Beitrag von ramses »

SDaniel hat geschrieben: Mi, 27. Mai 2020 13:57 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 ?
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
Antworten