Re: What's so bad about ODBC



On 11 May 2007 17:11:39 -0700, joel garry <joel-garry@xxxxxxxx> wrote:

On May 10, 3:21 pm, DA Morgan <damor...@xxxxxxxxx> wrote:


It is far better to connect to Oracle using the native connectivity.
Get as far away from ODBC as you can.

It may not solve your problem but it will still be a good idea.

What exactly might be a problem with ODBC? I ask because a customer
appears to be moving towards sucking out a lot of stuff into MS
analytics cubes and such. I think it's using ODBC, but not sure how
to tell. This is in the listener.log (all that's left after removing
site-specific identifiers):

CID=(PROGRAM=C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Binn
\sqlservr.exe)

At one point, I had shown the customer how to get this stuff (or
something like it) going with instant client as the driver, but I
don't know what is happening now (a vendor has recently done an
install of a beta product, I'm not involved on that end). I don't
know how different this is than a typical Crystal suck or whatever, it
does appear to be hitting the db with some frequency at semi-random
times. Haven't had a chance to see exactly what it is doing yet,
assume it is just grabbing rows from a few key tables.

So I'm interested in what might be wrong with ODBC from the server
point of view. If it blows on the other end, that doesn't bother me
so much. They're talking about maybe turning this into a full-blown
DSS, which would be fine by me, since that would mean plenty of work
on the OLTP side (translation: Oracle db upgrade and 3rd party app
upgrade with perhaps a de-customization, haha), and less worry about
DSS queries from the clueless on the production system. And maybe I'd
learn something about the dark side, too.

jg

If you use a function in your where clause, which can't be mapped by
the Evil Empire to an Oracle function, the Evil Empire will cause all
data to be fetched to the client, and have it filtered on the client.

Also: actual execution paths are often unpredictable, as ODBC may
decide to split a join up in two different queries, one being executed
on the server, and one executed on the client, and the join being
executed on the client.
The probability of this will increase if you combine Oracle and
non-Oracle tables.

Long ago, I ended up with converting most queries into passthrough
queries, because otherwise the performance was just horrible due to
the reasons above.
Mind you: as far as I remember Billy-boy, Stevie-boy and his
associates couldn't even map Microsux Jaccess date functions to
to_char and to_date.

If you don't have heterogeneous sources, don't use ODBC, if your app
supports a native Oracle driver.

--
Sybrand Bakker
Senior Oracle DBA
.



Relevant Pages

  • Re: HELP
    ... Not familiar with specs for Oracle Client, ... ODBC driver). ... >> Connection and Recordset Objects) in order to use ODBC ...
    (microsoft.public.excel.programming)
  • Re: How do I access Oracle 8 data via ODBC
    ... 2003 via ODBC. ... I have installed the Oracle version 9 client. ... Client, per se, but in the ODBC Driver associated with it. ... Up-and-running support may be found through OpenLink's online Support ...
    (microsoft.public.word.docmanagement)
  • Re: SQLPLUS driver
    ... Sql*plus is NOT using odbc. ... To connect to a database using sqlplus you need a full client (all ... Eventually sqlplus uses OCI (Oracle Call Interface), ...
    (comp.databases.oracle.server)
  • Re: ODBC Problems
    ... installation the application found only the Ms ODBC dricver for ORacle. ... because I have Oracle Instant CLient installed. ...
    (comp.databases.oracle.tools)
  • RE: Windows to Oracle
    ... resolved yet (with respect to a Windows OS). ... and Oracle DBDs. ... Need to install Oracle on your own machine before you can connect to the ... If you are truly trying to use ODBC, why are you specifying the Oracle ...
    (perl.dbi.users)