I finally identified the cause of the performance slowdown in both PBv12 and PB2019R3. The problem is the DBPARM option "DisableBind=1".
SQLCA.DBParm = "DelimitIdentifier='No', PackageProcs=1, StaticBind=1"
Olan
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PBv12.1 b7055 & PB2019R3 b2670
Oracle 12C
Windows 64 bit platform
The main function of our primary app is to generate invoices. All of the code is internal to Powbuider, using PB script, DWs, and embedded SQL. We have migrated this huge app to 2019R3 and like it, but we've run into a show-stopper: the 2019R3 version of the app is 5 times slower than the PBv12.1 version when generating invoices.
In a desperate attempt to gain processing speed, I have compiled the app into Machine Code, i.e. DLLs instead of PBDs. We tested the DLL version of the 2019R3 app against the PBD version ofthe PBv12.1 app, and the 12.1 version was 5 times faster. Five large invoices (a very small subset) required 7.1 seconds in v12.1 and required 29.7 seconds in 2019R3. We tested with the exact same code on the exact same platform using the same invoices running against the same database.
I've no idea why 2019R3 is so much slower, and I really did not expect that to be the case. But it is what it is, and it's a show-stopper. We will not deploy the 2019R3 version of the code until the processing performance matches that of PBv12.1, or at least get close to it.
This is a shame, because 2019R3 is the preferred version, and the code it creates works with the Windows 2019 server under Citrix, and the 12.1 version does NOT. So....we'd LOVE to migrate, but cannot do so at this time.
Q1: Does anyone have any suggestions on how to speed up the processing of 2019R3?
I expected the DLL version of the application to be significantly faster than the PCODE version, yet the performance of both versions of the code was nearly identical.
Q2: Was my expectation unrealistic?
Q3: Does having the "Enable DEBUG Symbol" option checked make any difference?
I ran the 4GB_FIX.EXE utility pointed out by Aart against my EXE and it resolved the memory issues I was experiencing AND it about t ripled to perfmance of my code!
https://ntcore.com/?page_id=371
Thanks for sharing the solution with us. This is very helpful for us to handle similar issues in the future.
Regards,
Ken