Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Hier dreht es sich um den PostGre Server

Moderator: Moderatoren

Umstellung auf PostgreSQL

Nein
5
63%
JA innerhalb von 6 Monaten
0
Keine Stimmen
JA innerhalb von 12 Monaten
2
25%
JA innerhalb von 24 Monaten
0
Keine Stimmen
JA aber noch später
1
13%
 
Insgesamt abgegebene Stimmen: 8

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: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von ramses »

Du musst aber dabei bedenken dass die Datenbank durchaus die 32 Bit Grenze an Datensätzen überschreiten darf und es mit der 32 Bit PGLIB noch immer keine Probleme gibt. Der Returnwert von PGEXEC ist ja immer ein String also funktioniert schon das meiste problemlos. Das du ein Resultset mit mehr als 4G Datensätzen erzeugen kannst bezweifle ich. Also wird es auch mit der 32 Bit Version nicht so schnell zu Problemem kommen.
es gibt ja schon eine 4 TB SSD (mit QLC Bausteinen) und ausser A/V sind da ja noch die Bilder aus dem Urlaub ...
Die, bezw. alle SSD sind noch nicht wirklich ein gangbarer Weg weil mit der nötigen Redundanz noch zu teuer .....
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von AUGE_OHR »

ramses hat geschrieben: Sa, 31. Aug 2019 7:15 Also wird es auch mit der 32 Bit Version nicht so schnell zu Problemem kommen.
wie schon gesagt bin ich in die Situation geraten und stand da ...

wenn man nun in der IDE einfach "umstellen" kann ob man 32 Bit oder 64 Bit haben will ...
32or64build.jpg
32or64build.jpg (15.37 KiB) 8790 mal betrachtet
ich habe nun die 64 Bit LIBs bekommen und auch die CLASS TPQServer die wie die CLASS PgSQL ist.
der Wrapper postgres.c ist ebenso dabei wie rddcopy.c ... mal sehen was das ist

einziger Nachteil : ich werde "gezwungen" unter 64 Bit zu arbeiten ( mit vDos und meinem Editor ) :roll:
gruss by OHR
Jimmy
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: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von ramses »

Aus Sicht meiner Anwendungen sind solche Experimente wohl eher Sackgassen.

Ich würde an deiner Stelle versuchen die PG Befehle so einzusetzten dass du kein ResultSet mit über 4 Milliarden Sätze erhältst bezw. die Befehle so zu formulieren dass diese mit der 32 Bit PGLIb laufen.

Oder wenn schon 64 Bit dann gleich richtig. Weg von Xbase zu einer Sprache die 64 Bit unterstützt. Ob die denn auf einer Low-Cost CPU schneller laufen? Wohl kaum.
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von AUGE_OHR »

ramses hat geschrieben: So, 01. Sep 2019 11:10 Oder wenn schon 64 Bit dann gleich richtig. Weg von Xbase zu einer Sprache die 64 Bit unterstützt.
es ist richtig das Xbase++ kein 64 Bit Kann aber das heiss nicht das es ein anderer xBase "Dialekt" nicht könnte :!:
ramses post hat geschrieben: Ob die denn auf einer Low-Cost CPU schneller laufen? Wohl kaum.
das hat mit der CPU weniger zu tun sondern ob 64 Bit Software "mehr Reserven" hat.
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von brandelh »

Zunächst hat 64 Bit Software mehr overhead, weil alles was bisher locker in ein 32 bit Integer untergebracht wurde nun zwingend eine 64 bit Integer benötigen wird.

Und eine SQL Abfrage, welche mit ein Resultset von über 2 GB erzeugt, ist in einer "normalen" Anwendung auf jeden Fall ein Designfehler.
Bei uns haben die Entwickler die Hände über dem Kopf zusammengeschlagen, als meine Frau mehr als 500 Treffer sehen wollte (da wird hier abgeregelt).
Ich habe dann zu Ihr gesagt, dass Sie doch niemals 500 Fälle ansehen will um den richtigen zu finden, darauf meinte Sie, dass sie wissen müsse wie viele Treffer es überhaupt gibt.
AHA ... darauf hin wurde noch eine Abfrage eingebaut, die nur die Treffer Anzahl wollte und alle waren zu frieden.
Hier greifen etwas über 1000 Mitarbeiter auf die Fall-Daten zu, welche früher auf einem Großrechner lagen, etwa 2 Millionen aktuelle Fälle.

Meine Hauptanwendung liest zeilenweise Daten aus Textdateien ein (1 Feld = 1 Zeile), welche auf Großrechnern, Windows / Unix oder AS400 Servern erstellt wurden.
Die Auswertung läuft dann sequentiell durch die 1 Million Datensätze, die DBF ist etwas über 1 GB groß. Es macht keinen Sinn das auf eine SQL Datenbank umzustellen.
Gruß
Hubert
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: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von ramses »

Kann aber das heiss nicht das es ein anderer xBase "Dialekt" nicht könnte :!:Kann aber das heiss nicht das es ein anderer xBase "Dialekt" nicht könnte :!:
Solche Experimente bewirken meist nur einen extremen Zeitaufwand ohne praktischen Nutzen. Denn bis aus einem Experiment mit einem anderen Dialekt ein komerziell einsetzbares Produkt wird braucht es noch einiges mehr an Aufwand.

Ich kann Hubert nur zustimmen. Eine Abfrage die ein grosses Resultset liefert ist ein Designfehler. Huberts maximum liegt noch einiges unter unserem von 1500 dies war das Ergebnis davon dass wir festlegten eine Abfrage soll unter 1 Sekunde erledigt sein. Ein Count der die vorhanden Treffer anzeigt ist dann eine Rückgabe der exec Funktion also ein String was wiederum mit der 32 Bit PGLIB jederzeit möglich ist.

Es ist ja nicht so dass ich nicht auch schon nach Alternativen zu Xbase gesucht hätte. Der einzige Sprachenwechsel den ich machen würde ist zu C++.
Und genau dies habe ich vor einiger Zeit konsequent abgelehnt. Das hat mich einen grossen Teil meiner Arbeit gekostet. Ich brauche EIN Werkzeug nicht viele verschiedene dafür eines welches ich aus dem ff behersche und vorallem auch dessen Maken und Ecken kenne.

Ich konnte bis jetzt immer alles mit Xbase umsetzten. Jimmy ich verstehe deine Experimente nicht .... nimm die Xbase 2.00 Version .... Xbase ist noch immer die Sprache mit welcher du mit kürzester Entwicklungszeit die besten Resultate erreichst. Auch wenn es dazu Zusatzprodukte wie List&Label braucht.

Ich konnte kürzlich (im Betrieb, zwischen Maschinen) erleben wie aufwenig nur schon eine kleine Anpassung im c++ Code ist. Wenn man dies mal sieht und mit Anpassungen in Xbase Code vergleicht haben wir mit xbase ein absolutes Spitzenprodukt welches es auch erlaubt als Kleinbetrieb professionelle umfangreiche Software zu bauen .... ... und wenn die Performance mal nicht ausreicht ist neue Hardware noch immer viel viel günstiger als eine andere Sprache oder Dialekt zu verwenden.
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von AUGE_OHR »

ramses hat geschrieben: Mo, 02. Sep 2019 9:17 Es ist ja nicht so dass ich nicht auch schon nach Alternativen zu Xbase gesucht hätte. Der einzige Sprachenwechsel den ich machen würde ist zu C++.
was wäre wenn ein Transpiler deinen xBase Code nach C "übersetzt" um daraus eine EXE zu machen :!:
wenn es "pure" Cl*pper v5.3 Code ist geht es so leicht wie mit VIO und zu 99,9% ohne Probleme =D>

bei GUI sind wir bei den Xbp Controls.
was wenn man eine LIB hat die genau diese Controls hat mit deren Method und VAR :?:
damit wäre auch 90% [erledigt] :badgrin:

allerdings können die restlichen 10% genau der Teil sein wo die "Arbeit" anfängt. Windows API Kenntnisse sind da hilfreich.
das liegt daran das Alaska gerne Sachen "anders" macht wie z.b. die ganzen XBP Konstanten die es unter Windows gibt.

Frage : was ist eine ConfirmBox() in anderen Dialekten / Sprachen :?:

---

aber zurück zum Thema :

die 32 Bit Version mit LibPG.DLL funktioniert ja schon also will ich nun den nächsten Schritt 64 Bit.

bei PostgreSQL gab es ja 2 DLL / LIB (?) Versionen (32/64 Bit) bis v10. die v11 gibt es nur noch als 64 Bit Version.
da es immer mehr 64 Bit DLL / COM Schnittstellen gibt wo ich mit 32 Bit Xbase++ nicht ran komme suche ich nach Alternativen.

---

es ist fast das selbe wie damals mit PgDBE wo ich nach Alternativen gesucht haben und mit den Spanischen Kollegen die native PG Schnittstelle weiter entwickelt habe. von denen hab ich auch die 64 Bit LIB bekommen um damit JETZT zu testen
gruss by OHR
Jimmy
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: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von ramses »

bei PostgreSQL gab es ja 2 DLL / LIB (?) Versionen (32/64 Bit) bis v10. die v11 gibt es nur noch als 64 Bit Version.bei PostgreSQL gab es ja 2 DLL / LIB (?) Versionen (32/64 Bit) bis v10. die v11 gibt es nur noch als 64 Bit Version.
Da hast du ein durcheinander. Den PGSERVER gab es bis und mit Version 10 als 64 oder 32 Bit und seit Version 11 nur noch als 64 Bit Version.

Der PGAdmin und daraus die PGLIB.DLL war schon immer nur eine 32 Bit Version.
was wäre wenn ein Transpiler deinen xBase Code nach C "übersetzt" um daraus eine EXE zu machen :!:
Auch solche Gedanken und auch Versuche habe ich gehabt und ausgeführt. Es war alles ein wenig traurig .....

Wie gesagt: Ich arbeite weiter mit XBase und hoffe dass es die 32 Bit Version noch eine Weile mit aktivem Support gibt.
Sicher irgendwann in ferner Zukunft wird es dann vielleicht ein 64 Bit Xbase geben. Das ist dann der Zeitpunkt wo ich auch mit experimenten beginne.
Diese Experimente jetzt schon anzustellen finde ich persönlich Zeitverschwendung. Weil alles 64 Bit Zeugs jetzt nicht mit Xbase läuft und viel von meinen eingesetzten DLL's noch 32 Bit sind und dies auch bleiben ...... für die neue Generation Steuerung gibt es 64/32 Bit Treiber, nur verbauen alle noch die alte Version und die haben eine Lebensdauer von 10-20 Jahren.
bei GUI sind wir bei den Xbp Controls.
was wenn man eine LIB hat die genau diese Controls hat mit deren Method und VAR :?:
damit wäre auch 90% [erledigt] :badgrin:
Eine Lib brauche ich zum Glück auch nicht mehr. Der Umbau der GUI Teile auf Web-Apps löst alle Probleme auch die mit Handles und Speicher in Xbase++.
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von AUGE_OHR »

bei PostgreSQL gab es ja 2 DLL / LIB (?) Versionen (32/64 Bit) bis v10. die v11 gibt es nur noch als 64 Bit Version. bei PostgreSQL gab es ja 2 DLL / LIB (?) Versionen (32/64 Bit) bis v10. die v11 gibt es nur noch als 64 Bit Version.
das ist doppelt und war verwirrend.
unsere Aussagen sind die selben.
ramses hat geschrieben: Di, 03. Sep 2019 13:58 Auch solche Gedanken und auch Versuche habe ich gehabt und ausgeführt. Es war alles ein wenig traurig .....
und welche Constribution hast du probiert :?:

GTWVG ist von einem Xbase++ User geschrieben und deshalb sind die selben Method / VAR / Events etc. vorhanden.
das ist übrigens auch die Idee der DXE LIB das man "nur" ein #xtranslate für die Name benötigt damit es funktioniert.

der Author ist inzwischen ein Core-Mitglied und es gibt einige User in den Foren die auch Xbase++ "verstehen" da die wohl selbst mal welche waren/sind.
ramses hat geschrieben: Der Umbau der GUI Teile auf Web-Apps löst alle Probleme auch die mit Handles und Speicher in Xbase++.
aber die native PG-Schnittstelle läuft unter Xbase++ :?:
gruss by OHR
Jimmy
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: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von ramses »

Ich habe viele Versuche unternommen. Im Vergleich zur aktuellen Lösung Xbase++ mit xb2net und L&L konnte nichts auch nur im Ansatz meine Wünsche und Funktionen für Web-Apps abdecken und dies obwohl ich von xbase nur noch die grundsätzlichen Teile verwende.
Also kein CXP oder HttpClient usw.

Auch wenn xbase sicher nicht überall perfekt ist so stimmt für mich momentan alles. Ich werde mich hüten ein mit viel Aufwand erstelltes System das nun endlich perfekt funktioniert einfach mit noch mehr (sinnlosem) Aufwand auf eine andere Sprache (Dialekt) umzustellen......
aber die native PG-Schnittstelle läuft unter Xbase++ :?:
Ja genau, und dies perfekt.
Valar Morghulis

Gruss Carlo
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von AUGE_OHR »

ramses hat geschrieben: Mi, 04. Sep 2019 21:20
aber die native PG-Schnittstelle läuft unter Xbase++ :?:
Ja genau, und dies perfekt.
die Version von Pablo :?:

mit "DLL libpq XIMPORT" ist das auf die LibPQ.DLL
die CLASS PGSql ist nun die Xbase++ Seite

"PostgreSQL RDBMS low level (client api) interface code"
und CLASS TPQServer ist das Gegenstück wobei die selben PQ* Function in den Method verwendet wird

ich kann die vorhandene CLASS TPQServer durch die CLASS PGSql "ersetzen" ... und alles funktioniert wie zuvor !
wir sind ja auf der API Ebene und der C Code ist ja die "Vorlage" von Pablo gewesen also sagte er ich soll das einfach "weglassen" :D

die 32 Bit App funktioniert ja schon aber mit der 64 Bit Version hab ich immer noch Problem beim erstellen der "Import LIB".

---

beim linken brauche ich die "Import LIB" mit den "Namen" der Function "in" einer DLL.

unter 32 Bit und BCC hab ich es so gemacht

Code: Alles auswählen

implib -a libpq.lib libpq.dll
so eine makelib.bat hab ich.
MakeLib.zip
(651 Bytes) 217-mal heruntergeladen
nun brauche ich das mit der 64 Bit libpq.dll v9.5 und Ming64
kennt sich da jemand aus :?:
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von AUGE_OHR »

ich habe was entdeckt was die Geschwindigkeit verdoppelt !
finish after 113.28 Sec. for 551403 Records = 4867.61
finish after 11.26 Sec. for 54322 Records = 4824.33
also rund 4800 Rec/Sec

das selbe gilt auch im Netzwerk wo der Mini PG-Server dann bis 3.7 Mbit geht
PS_INSERT10.jpg
PS_INSERT10.jpg (99.42 KiB) 8492 mal betrachtet
finish after 368.61 Sec. for 551403 Records = 1495.90
finish after 35.99 Sec. for 54322 Records = 1509.36
also gut 1500 Rec/Sec

nachdem ich das gesehen hab dachte ich das einer "massive" Erhöhung noch mehr bringen würde ...
aber nach oben geht es viel weiter ... es wurde eher weniger ... hm :-k

bin mir nicht sicher was die Begrenzung ist denn es ist sowohl im Netzwerk als auch Lokal wo beide CPU nur bei ca. 30% sind.
muss mal sehen an welchen "Schrauben" man da noch drehen kann um noch mehr Zeit beim "Upsize" zu gewinnen.

p.s. das ist Xbase++ und "Single-Core" ohne Threads
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von AUGE_OHR »

gar keiner interessiert wie man es so viel schneller bekommt :?:

Frage : wie lang ist ein String für ein "INSERT" ...

das hat man nun 500.000 mal beim "upsize" (ohne Thread) ...

---

so die erste 64 Bit App Version mit der PG-Schnittstelle funktioniert :blob8:

ich habe allerdings die "C" Files mit der 64 Bit LibPQ.LIB gelinkt und noch keine "externe" LIB hin bekommen.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von AUGE_OHR »

64 Bit App mit 64 Bit PG v9.5 DLL
Local
finish after 9.09 Sec. for 54322 Records = 5975.36
finish after 90.35 Sec. for 551403 Records = 6102.76
Netzwerk
finish after 32.04 Sec. for 54322 Records = 1695.44
finish after 302.12 Sec. for 551403 Records = 1825.14
PG64_INSERT20.jpg
PG64_INSERT20.jpg (147.92 KiB) 8410 mal betrachtet
die "Optimierung" scheint bei 64 Bit Local mehr zu bringen als bei 32 Bit
auch macht sich das bei grossen Dateien mehr bemerkbar als bei kleinen.

gegenüber der Original 32 Bit Version mit der native Schnittstelle sind es gut 300% die ich schneller geworden bin.

---

ich füge das DBF2PG2.EXE hinzu damit ihr es selbst probieren könnt.
es ist nur ein Console Tool und hat eine Menge Parameter, bitte README.TXT lesen.
DBF2PG2.zip
64 Bit App läuft nicht unter 32 Bit OS !
(628.7 KiB) 224-mal heruntergeladen
p.s. es wird evtl. MSVCR120.DLL als 64 Bit Version benötigt
https://www.microsoft.com/de-DE/downloa ... x?id=40784
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Xbase++ und PostgreSQL Server im (low Cost) Netzwerk.

Beitrag von AUGE_OHR »

DBF2PG2 macht Probleme bei DBT :( ... FPT funktioniert. :D

---

vom Mini-Server nun die Probe mit einem "grossen" PC aber auch schon älter (FX-8350, 4,4 Ghz, 16 GB, SSD)

hello 64 Bit world
finish after 116.33 Sec. for 551403 Records = 4739.79
PGU 32 Bit
finish after 127.31 Sec. for 551403 Records = 4331.18
mit der selben "Optimierung" ist er fast so schnell wie die 64 Bit Version :o

hier mal 4 x Instanzen beim "Upsize"
PG_4xFX-8350.jpg
PG_4xFX-8350.jpg (143.18 KiB) 8374 mal betrachtet
man sieht wie viel mehr Leistung nun von der Hardware kommt.
mit 8 "max_worker_processes" würde es bis 88 Mbit wohl gehen ( ca. 11 Mbit pro Processe/CPU ).
so viele Anfragen wird man gewöhnlich nicht machen also sind da genügend Reserven.
gruss by OHR
Jimmy
Antworten