PostgreSQL Version 12

Hier dreht es sich um den PostGre Server

Moderator: Moderatoren

Antworten
ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1471
Registriert: Mi, 28. Jul 2010 17:16

PostgreSQL Version 12

Beitrag von ramses » Sa, 05. Okt 2019 7:02

Wir haben seit einigen Tagen den PostgreSQL Version 12.0 im Einsatz. Das Upgrade mit Backup und Restore über PG_DUMPALL usw. lief Problemlos und mit all den grossen Datenbanken sehr schnell.

Die Performance in den Programmen die mit direkten Aufrufen aus der PGLIB.DLL arbeiten ist gefühlsmässig besser geworden und insgesamt läuft alles einwandfrei.

Versuche mit UPSIZE zeigen jedoch ein massiv schlechters Verhalten......
Valar Morghulis

Gruss Carlo

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12093
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: PostgreSQL Version 12

Beitrag von AUGE_OHR » Sa, 05. Okt 2019 9:17

moin,

sind noch die Default Optionen eingestellt oder hast du die v11 Einstellungen übernommen :?:

das Upsize Tool kann wohl davon mehr profitieren als die native Schnittstelle wenn optimale Bedingungen dafür vorliegen.
nun würde mich interessieren "wie schnell" ist denn das jeweilige Upsize :?:
gruss by OHR
Jimmy

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1471
Registriert: Mi, 28. Jul 2010 17:16

Re: PostgreSQL Version 12

Beitrag von ramses » Sa, 05. Okt 2019 11:33

Hallo Jimmy

Da es beim Versionswechsel (11->12) jedesmal eine neue "Datenbank" mit neuen Configs ist habe ich natürlich die Netzwerk und Speichereinstellungen angepasst und nicht einfach die alten Files übernommen.

Das Problem beim xbase++ Upsize Tool sind die Triggerfunktionen die einfach krasse Leistungsfresser sind.... Wir hatten doch das Thema schon mal und uns wurde doch ausführlich erklährt dass wir Postgres nur falsch konfigurieren ... jedoch auch ohne Vorschläge wie es sein sollte... ich möchte das nicht erneut Aufkochen und wiederholen.

Mir ging es darum dass es nun den 12er Release gibt der mit Aufrufen der PGLIB problemlos und schnell läuft.
Valar Morghulis

Gruss Carlo

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12093
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: PostgreSQL Version 12

Beitrag von AUGE_OHR » Sa, 05. Okt 2019 12:19

ramses hat geschrieben:
Sa, 05. Okt 2019 11:33
Mir ging es darum dass es nun den 12er Release gibt der mit Aufrufen der PGLIB problemlos und schnell läuft.
das ist natürlich die entscheidende Information das die 32 Bit Schnittstelle mit der v.12 funktioniert =D>

ich hatte schon befürchtet das es nicht mehr gehen könnte da man ja nur noch 64 Bit Versionen seit der v.11 bekommt.
gut damit haben wir wieder ein wenig Zeit gewonnen denn irgendwann ...
gruss by OHR
Jimmy

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1471
Registriert: Mi, 28. Jul 2010 17:16

Re: PostgreSQL Version 12

Beitrag von ramses » Sa, 05. Okt 2019 13:18

ich hatte schon befürchtet das es nicht mehr gehen könnte da man ja nur noch 64 Bit Versionen seit der v.11 bekommt.
Das betrifft aber nur den SERVER!!!!!

PGAdmin und damit auch die LIBPQ gibts NUR als 32Bit Version!!!! (LIBPQ muss es natürlich heissen nicht PGLIB wie ich vorher schrieb)

Auch die 32 Bit Version der LIBPQ kann dir einen 64 Bit Return Wert zurückgeben. Der EXTERN Befehl der aktuellen Xbase Version hat den ReturnTyp "Integer64" oder für die 1.9er die Funktion qwFpCall() aus ot4xb die auch einen 64 Bit Integer zurückgeben kann. Du siehst es besteht keinen Grund zur Sorge auch wenn du derart grosse Datenbanken hast.
Valar Morghulis

Gruss Carlo

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12093
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: PostgreSQL Version 12

Beitrag von AUGE_OHR » So, 06. Okt 2019 1:15

ramses hat geschrieben:
Sa, 05. Okt 2019 13:18
PGAdmin und damit auch die LIBPQ gibts NUR als 32Bit Version!!!! (LIBPQ muss es natürlich heissen nicht PGLIB wie ich vorher schrieb)
hm ... :-k

wie ich ein EXE "prüfen" kann ob es 64 Bit oder 32 Bit ist weiss ich im Augenblick nicht.
nun liegt in der v9.5 das PgAdmin3.EXE in \BIN und da gibt es auch die LibPQ.DLL und "die" ist 64 Bit
ramses hat geschrieben:Auch die 32 Bit Version der LIBPQ kann dir einen 64 Bit Return Wert zurückgeben.
:shock:
hast du das schon getestet :?:

sprichst du von der alten LibPQ.DLL Version die keine weiteren DLL benötigt :?:
die neueren Version haben ja weitere DLL wie ssleay32.dll oder zlib1.dll und die müssen "passend" 32 Bit oder 64 Bit sein damit LibPQ.DLL funktioniert.

---

um Daten zu übergeben nimmt Windows gerne eine Structure ähnlich einer DBF

Code: Alles auswählen

BEGIN STRUCTURE MEMORYSTATUSEX_st
  MEMBER DWORD         dwLength
damit ist die "Länge" festgelegt und grössere Werte kann man NICHT ablegen.

wenn ich nun einen 64 Bit Wert erwarte muss die Structure "Platz" dafür haben

Code: Alles auswählen

  MEMBER DWORDLONG ullTotalPhys
den 64 Bit Wert kann man nun weiter verarbeiten mit

Code: Alles auswählen

#xcommand MEMBER DWORDLONG <cm> => MEMBER DWORD64   <cm>
//----------------------------------------------------------------------------------------------------------------------
#xcommand PROPERTY DOUBLE <nd> IS UINT64 MEMBER <uq>   =>;
          INLINE ACCESS ASSIGN METHOD <nd>(v) ;
          ; if( PCount() > 0 ) ;
          ; ::<uq> := Double2ULongLong( v )  ;
          ;   return v ;
          ; end ;
          ;return ULongLong2Double( ::<uq>)
man muss also erst die Structure "aufbohren" damit 64 Bit Werte abgelegt werden können die man abholen kann.

bei Beispiel ist zur Anzeige von MEMORY() > 4 GB unter Xbase++
https://docs.microsoft.com/en-us/window ... rystatusex
gruss by OHR
Jimmy

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1471
Registriert: Mi, 28. Jul 2010 17:16

Re: PostgreSQL Version 12

Beitrag von ramses » So, 06. Okt 2019 5:42

wie ich ein EXE "prüfen" kann ob es 64 Bit oder 32 Bit ist weiss ich im Augenblick nicht.
Das ist ganz einfach. Dazu gibt es verschiedene Tools die dir den File-Header mit diesen Infos anzeigen. z.B. CFF Explorer von www.ntcore.com
hast du das schon getestet
Ja aber mit einer anderen DLL
Valar Morghulis

Gruss Carlo

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12093
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: PostgreSQL Version 12

Beitrag von AUGE_OHR » So, 06. Okt 2019 7:57

ramses hat geschrieben:
So, 06. Okt 2019 5:42
Das ist ganz einfach. Dazu gibt es verschiedene Tools die dir den File-Header mit diesen Infos anzeigen. z.B. CFF Explorer von www.ntcore.com
OK ... und damit erhalte ich
PgAdmin3_64.jpg
PgAdmin3_64.jpg (106.89 KiB) 290 mal betrachtet
also mein PgAdmin3.EXE ist 64 Bit


... da gibt es auch einen "4 GB Patch" :o
https://ntcore.com/?page_id=371
ramses hat geschrieben:Ja aber mit einer anderen DLL
die Frage wäre welche Version die LibPQ.DLL hat :?:
gruss by OHR
Jimmy

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1471
Registriert: Mi, 28. Jul 2010 17:16

Re: PostgreSQL Version 12

Beitrag von ramses » So, 06. Okt 2019 8:58

Jimmy

WARNING: pgAdmin 3 is no longer supported. It is recommended that you download pgAdmin 4 instead.

PGAdmin4 ist wieder eine 32 Bit APP mit QT erstellt. Die LIBPQ darin ist die 11.0.5.19225
Valar Morghulis

Gruss Carlo

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12093
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: PostgreSQL Version 12

Beitrag von AUGE_OHR » So, 06. Okt 2019 20:45

ramses hat geschrieben:
So, 06. Okt 2019 8:58
PGAdmin4 ist wieder eine 32 Bit APP mit QT erstellt.
das ist ja die Web Version die ich nich mag [-X
ramses hat geschrieben:
So, 06. Okt 2019 8:58
Die LIBPQ darin ist die 11.0.5.19225
hm ...
seit der v.11 wird doch nur noch die 64 Bit Version geliefert ... wo kommt denn "die" 32 Bit Version her ... :?
gruss by OHR
Jimmy

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1471
Registriert: Mi, 28. Jul 2010 17:16

Re: PostgreSQL Version 12

Beitrag von ramses » So, 06. Okt 2019 23:40

seit der v.11 wird doch nur noch die 64 Bit Version geliefert ... wo kommt denn "die" 32 Bit Version her ...
Das ist so. ABER betrifft den SERVER !!! (Wie schon weiter oben erwähnt.)

PGAdmin ist ein anderes Programm ein anderes Projekt mit einer anderen Web-Seite und in 32 Bit ohne der Auswahl 64/32.

Nach meiner Erfahrung musst du mit PG 12 auch auch die aktuelle Version des PGAdmins also 4 (die schöne Web-App) verwenden. Wir mussten auch die ältern PGAdmin4 updaten damit diese korrekt funktioniert haben.

Das verwenden der alten Version könnte dir auch massive Probleme verursachen.
Denn z.b. für Backup/Restore sollte immer die NEUSTE Version verwendet werden. Nur die kann korrekt mit dem Server umgehen und auch alle Daten richtig lesen/schreiben.
Valar Morghulis

Gruss Carlo

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12093
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: PostgreSQL Version 12

Beitrag von AUGE_OHR » Mo, 07. Okt 2019 7:34

hi Carlo,

mir ist klar das es nur eine Server Version gibt.

IHMO gibt kein reines Client DLL "Paket" also kopiere ich die vom Server X:\Program Files\PostgreSQL\9.5\lib\ in das Client Verzeichniss mit der App. wenn es aber nur noch 64 Bit Server Versionen gibt (ab v.11) dann kann man "nur" die 32 Bit LibPQ.DLL & Co bis v.10.x verwenden.

nun sind das Zugegeben Luxus sorgen denn auch eine alte LibPQ-DLL v7.x funktioniert für 32 Bit mit einem 64 Bit Server solange man nicht Verschlüsselung & Co verwendet (v8.x)

ab v9.x ging es ja mit 64 Bit Los und es gab dann 64 Bit DLL die Clients nutzen können.

---

ein "Upsize" mit einem 64 Bit Client & 64 Bit LibPQ.DLL hab ich ja inzwischen erstellt.
bei der Geschwindigkeit ist nicht viel Unterschied beim jetzigen (gleichen) Code.
bei der Menge hab ich noch nichts "gebastelt" was mir eine Table > 2^32 ROW erstellt um es zu testen.

hm ... wie viele Datensätzen waren auf den "Telefon Nummer" CD-ROM :?:
ich bin der Meinung das es zu viele waren für DBF aber für PostgreSQL ... :idea:

---

ich habe festgestellt das es wohl die selbe Routine für DLL wie EXE ist um festzustellen ob 32 Bit oder 64 Bit.

Code: Alles auswählen

#define IMAGE_FILE_MACHINE_I386  0x14c
#define IMAGE_FILE_MACHINE_IA64  0x200
#define IMAGE_FILE_MACHINE_AMD64 0x8664

   // Markierung suchen
   nPointer := AT("PE"+CHR(0)+CHR(0),cBuffer)
   IF nPointer > 0
      cBinMachineType := ( SUBSTR(cBuffer,nPointer+4,2) )
gruss by OHR
Jimmy

ramses
Programmier-Gott
Programmier-Gott
Beiträge: 1471
Registriert: Mi, 28. Jul 2010 17:16

Re: PostgreSQL Version 12

Beitrag von ramses » Mi, 09. Okt 2019 17:50

Du kannst dir die DLL natürlich jederzeit in der gewünschten Ausführung auch selbst generieren. Der Sourcecode und die Makefiles ist ja beides vorhanden.
Valar Morghulis

Gruss Carlo

Antworten