ODBC performance vs. 4gl
Posted in 1997
Hy, I have a big problem with the performance of odbc vs. native ESQL (4gl). I am developing an portable unix-application (AIX) using the INTERSOLV ODBC-Driver Pack. I have programmed a small c programm which makes just a view (different) selects and I also created the 'same' programm under 4gl. The 4gl programm runs 2-3!!! times as fast as the ODBC-C-Proramm when using selects. The performance differnce when using updates, deletes.. (non - select - statements) is still about 30 percent (that would be ok...). So I started debugging the c-programm und got the following results: the ODBC-programm uses the most time in SQLExecDirect or SQLPrepare (70 percent). If I prepare one Select-statement once and execute it multiple, then the odbc-programm is almost as fast as 4gl. If i programm the 4gl select always like: perpare statement declare cursor open cursor fetch close cursor then, it's almost the same like ODBC - ExecDirect. But I didn't figure out what the 4gl does, that it makes it so much faster.. Does anybody have an explaination or solution for this. I don't know what I should do know (do I realy have to write my own little ODBC bases on the native api of every DBMS-manufactur...). Thanks a lot.