ODBC Driver Behaviour?

  • From: Niall Litchfield <niall.litchfield@xxxxxxxxx>
  • To: "oracle-l@xxxxxxxxxxxxx" <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 7 Oct 2004 14:11:22 +0100

I'm really hoping that 

a) This is known ODBC Driver behaviour and
b) something can be done about it without touching the code (i.e there
is a way of modifying the behaviour).

We have a 3rd party app (probably C or C++) that is slow (and
unreliable and other stuff). Its our internal IT helpdesk system so I
haven't paid much attention to it until now.

One of the reasons it is slow is that it exhibits the following behaviour

parse "select * from tab where .... order by ..."; 
parse *and execute* "select rowid,* from tab where ...order by .."; 

The statements only differ in that the one that is executed selects
out rowid as well as the table data. The first statement is NEVER
executed.

For the statement that *is* executed it is almost always executed
exactly twice the number of times that it is parsed (leading me to
think that the results of the first fetch are just thrown away).

I'm trying to work out a nice way of asking the vendor why they are
doing so much utterly useless work (and doing row at a time
processiong instead of set processing and so on) but in the mean time
has anybody else seen this sort of behaviour with ODBC apps.

Windows XP Clients running 9204 and 9204 ODBC Driver
Windows Server also running 9204. (Same behaviour on the 9205 test
environment).

Cheers

Niall

-- 
Niall Litchfield
Oracle DBA
http://www.niall.litchfield.dial.pipex.com
--
//www.freelists.org/webpage/oracle-l

Other related posts: