Re: Proc C Dynamic SQL - Parameterized SQL statements
Date: 1997/06/24
Message-ID: <33B05BA5.100FCD98_at_jp.oracle.com>#1/1
karthikn_at_cyberdude.com wrote:
>
> Hello,
>
> Is there any advantage in terms of speed, cache hits etc. if I use
> the parameterized version of dynamic SQLs, ie., construct and pass in
> values thru SQLDA instead of
> building the values directly into the SQL string. To illustrate :-
>
> Will the following statement be less efficient
>
> "SELECT A,B FROM SOMETABLE WHERE A = 10"
>
> as oppossed to
>
> "SELECT A,B FROM SOMETABLE WHERE A = : x "
>
> and I pass in the value of x thru SQLDA.
>
> The one benifit at my application level is that I can reuse the
> SQLDA again and again. But I am wondering about any performance benefits
> from the Oracle Server in
> terms of improved cache hits or any other. I do not know much about
> Oracle caching.
>
> Thank you for your replies
> Karthi
>
> -------------------==== Posted via Deja News ====-----------------------
> http://www.dejanews.com/ Search, Read, Post to Usenet
One immediate benefit of using the above structure is this:
SELECT A,B FROM SOMETABLE WHERE A = 10
and
SELECT A,B FROM SOMETABLE WHERE A = 11
Although the above two select statements are very similar,
Oracle must parse the two statements separately since they
are not identical.
However,
"SELECT A,B FROM SOMETABLE WHERE A = :X" and then setting x=10 first time, and x=11 the second time parses the statement only once since the select statement itself is identical even if the value passed to :x is different.
This can increase server side performance.
-- ____________________________________________ / Kenichi Mizuta / Oracle Corporation (Redwood Shores, CA) //// / Applications Division |0 0| / email: kmizuta_at_us.oracle.com _ooO_ \U/_Ooo_/ url: http://members.tripod.com/~kmizuta/ The comments and opinions expressed herein are mine and do not necessarily represent those of Oracle Corporation.Received on Tue Jun 24 1997 - 00:00:00 CEST