Hello, all,
I have tried to retrieve data from Oracle database throught Dolphin Database Connection. And I revealed performance problem in fetch implementation. Method ODBCLibrary >>sqlExtendedFetch:... always works like >>sqlFetch:, fetching only single row. You can test it by setting breakpoint in DBResultSet>>xFetch:at:. Any comments? Dmitry -- Posted from info.tvcom.ru [194.87.73.17] via Mailgate.ORG Server - http://www.Mailgate.ORG |
Dmitry
You wrote in message news:000b01c0a6e0$69823540$[hidden email]... > > I have tried to retrieve data from Oracle database throught Dolphin Database > Connection. And I revealed performance problem in fetch implementation. > Method ODBCLibrary >>sqlExtendedFetch:... always works like >>sqlFetch:, > fetching only single row. You can test it by setting breakpoint in > DBResultSet>>xFetch:at:. > > Any comments? Is this really a performance problem with Oracle? We haven't found it to be with other DBs (generally the various driver layers do their own buffering it seems). I have heard that Oracle's ODBC drivers are poor, but I have no personal experience with them. Regards Blair |
Dmitry,
It's a long time I don't work with ODBC against an Oracle DB, But I remember last time I did that the Merant (at that time Intersolv) ODBC driver where much more performing than the Oracle native one. You can easily check this if you go to the merant WEB site and download a 30 days eval of theyr ODBC, they are called DataDirect. Ciao -- Giorgio Ferraris Eleven srl Moncalieri (TO) Italy Blair McGlashan <[hidden email]> wrote in message 985m1s$e7nn$[hidden email]... > Dmitry > > You wrote in message news:000b01c0a6e0$69823540$[hidden email]... > > > > I have tried to retrieve data from Oracle database throught Dolphin > Database > > Connection. And I revealed performance problem in fetch implementation. > > Method ODBCLibrary >>sqlExtendedFetch:... always works like >>sqlFetch:, > > fetching only single row. You can test it by setting breakpoint in > > DBResultSet>>xFetch:at:. > > > > Any comments? > > Is this really a performance problem with Oracle? We haven't found it to > with other DBs (generally the various driver layers do their own buffering > it seems). I have heard that Oracle's ODBC drivers are poor, but I have no > personal experience with them. > > Regards > > Blair > > |
In reply to this post by Dmitry Zamotkin-4
> It's a long time I don't work with ODBC against an Oracle DB, But I
remember > last time I did that the Merant (at that time Intersolv) ODBC driver where > much more performing than the Oracle native one. > You can easily check this if you go to the merant WEB site and download a 30 > days eval of theyr ODBC, they are called DataDirect. OK, Merant driver works twice faster, thanks. But problem is not in Oracle driver or server. I assert that fetch in Dolphin Database Connection ALWAYS get ONLY 1 row. I'll try to rewrite this package for my needs, but object-arts.com team must know about this imperfection too (and something to do to correct, I suppose). > Ciao Do svidaniya :) -- Posted from info.tvcom.ru [194.87.73.17] via Mailgate.ORG Server - http://www.Mailgate.ORG |
I went down that road before, and did not get much in the way of performance
gain. I either had a flaw in my implentation, or the driver (SQL 6.5 ODBC) was handling the caching on my client, so fetching 1 row at a time wasn't much of a problem. The code is old (2.1?) and probably in bit-heaven by now. Make sure you get Ian's profiler so you don't have to guess where the problem is - in my case it turned out that the float conversion (I think) was slowing me down most at that time- that's fixed in 4.0. There was also a thread earlier this year which mentioned lack of garbage collection in tight ODBC loops (say you're doing something to a 10,000 row query) - if your memory usage goes high enough and you start thrashing the disk you'll slow to a crawl. Running an explicit garbageCollect every few hundred rows helps. Good luck and good hunting! Jerry Bell [hidden email] "Dmitry Zamotkin" <[hidden email]> wrote in message news:009c01c0aa11$5f52c600$[hidden email]... > > It's a long time I don't work with ODBC against an Oracle DB, But I > remember > > last time I did that the Merant (at that time Intersolv) ODBC driver where > > much more performing than the Oracle native one. > > You can easily check this if you go to the merant WEB site and download a > 30 > > days eval of theyr ODBC, they are called DataDirect. > > OK, Merant driver works twice faster, thanks. But problem is not in Oracle > driver or server. I assert that fetch in Dolphin Database Connection ALWAYS > get ONLY 1 row. I'll try to rewrite this package for my needs, but > object-arts.com team must know about this imperfection too (and something to > do to correct, I suppose). > > > Ciao > Do svidaniya :) > > > -- > Posted from info.tvcom.ru [194.87.73.17] > via Mailgate.ORG Server - http://www.Mailgate.ORG |
"Jerry Bell" <[hidden email]> wrote in
message: <A
href="news:98fvc4$1q53n$1@ID-57200.news.dfncis.de">news:98fvc4$1q53n$1@......
> Make sure you get Ian's profiler ...
Already my first-aid set...
> Running an explicit garbageCollect every few hundred rows helps.
It not help but slows down.
I've made another test. I've created link to Oracle ODBC source in MS
Access. Speed of fetching in Access is same as in native Oracle workspace (SQL+)
and 5 times faster then Dolphin Database Connection.
|
Free forum by Nabble | Edit this page |