Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Oracle API for C/C++ ?
Jeffery Cann <jccann_at_home.com> writes:
> --------------867472A163F7DA7140D20B00
> Content-Type: text/plain; charset=us-ascii
> Content-Transfer-Encoding: 7bit
>
> Peter Sylvester wrote:
>
> > Shawn Lavin wrote:
> > >
> > > Several points to add :
> > >
> > > The Oracle precompiler actually converts Pro*C calls into OCI
> > > calls.
> > >
> >
> > Not so!
> > Stange as it may seem, the Pro*C precompiler uses a different
> > (undocumented) interface (sqlcxt, etc).
>
> Pro*C is also much slower, especially over SQL*NET, than either OCI or
> OTL. This is because of the SQLCA structure that is supported by
> Pro*C. Each time you send a db command, this structure has to be filled
> with state information. Due to the fairly significant overhead of
> SQL*NET (sits on top of TCP/IP), we have found OTL to be 2-3x faster
> than Pro*C for the same database and code.
>
The speed up you notice is probably due to OTL using array fetches
which can make a huge difference if you are going over SQL*Net. Pro*C
supports array fetches, and probably could be made to perform as well
as OTL. I would be very surprised if Pro*C is 2-3 times slower than
OCI in a fair comparison.
--
Kelly R. Burkhart
kburk_at_sky.net
Just enjoy the Ozzy and keep your mouth shut