From: Joe Pluta
Nathan seems to think (and I would agree) that you can skip the stored
procedure entirely and just call the program that the stored procedure calls.
Thanks for getting my back, Joe. This thread motivated me to download the source code for XMLSERVICE, which is a library of several source files and members. I reviewed the code for the XMLCGI and XMLSERVICE programs, and several others.
It looks like XMLCGI uses an SQL CLI interface for calling the stored procedures rather than calling the procedures directly. But I'd bet that QZDASOINIT also uses some sort of SQL interface for calling the stored procedures too.
At any rate, we end up comparing:
.Net App <==> DB Driver <==> QZDASOINIT <==> SQL Interface <==> Stored Procedures
.Net App <==> REST Web Service <==> Apache Server <==> XMLCGI <==> SQL Interface <==> Stored Procedures
-----
Since the 2nd interface includes an HTTP Server in the middle, should we ASS-U-ME that it carries more overhead on the server? I don't think so!
For starters, I added all the CPU time consumed by the HTTP Server Jobs and my RPG program which also uses an SQL CLI interface to generate SQL result sets, reads them, and generates a CSV formatted response.
Then I used Visual Foxpro and an IBM i Access 7.1 DB Driver to download the same files, and tracked the CPU time consumed by the QZDASOINIT Job.
Guess which interface consumed more CPU?
The QZDASOINIT Job actually consumed 32% more CPU time. It evidently has MORE overhead.
Notwithstanding, we're only talking about 88 milliseconds (CGI Interface) vs. 116 milliseconds (QZDASOINIT) to generate and output a formatted stream of 2,249 records, for example.
-Nathan.
As an Amazon Associate we earn from qualifying purchases.