Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: External C Procedures performance

Re: External C Procedures performance

From: Billy Verreynne <vslabs_at_onwe.co.za>
Date: Thu, 31 Oct 2002 11:59:22 +0200
Message-ID: <apquvp$gbv$1@ctb-nnrp2.saix.net>


WST wrote:

> 0.7 ms is about 245k clock cycle for the mentioned machine, it is way
> too much. You only need about 20 clock to call a DLL function.
> This overhead makes external C procedure much less useful.

How did you measure the time of the call? I think it will be very difficult to measure the actual physical call from Oracle to the DLL.. so maybe the reason for this seeming large delay is due to Oracle first parsing the SQL (or PL/SQL) and do whatever else it needs to do, before making the actual call, and then the time it takes to assemble the results in a cursor and return it to you.

After all, I think we can safely assume that it does something along the lines of a GetProcAddress and calling the result via a type cast method pointer... The speed of these being a direct function of the hardware and operating system, right?

Back to your question about tuning - I can not see how one can tune the speed of a external procedure call. There are no optimiser hints or Oracle parameters that I know of, that specifically address the speed of an external DLL call..

> And why you think that I develope SW for goverment?

Hey, don't tell me you missed that smiley at the end. Was pulling your leg about writing something that does nothing (i.e. "empty" external proc). Something like a technical spec drawn up by some government bureaucrat in an attempt to fix the problem with CPU idle time being too high. ;-)

--
Billy
Received on Thu Oct 31 2002 - 03:59:22 CST

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US