Seems like we are starting Yet Another Bind Discussion!

Anyway, the peeking into bind variables is basically done when a hard parse is done.  Hence, if multiple sessions execute the same shared SQL statement, only the first one will actually do the peek and hence, the optimization for all executions in all sessions will be as this first one.

In my opinion, cursor_sharing and bind variable peeking should be useless features.  However, I realize there are some incorrectly written applications out there that can have marginal need for them.

/Bjørn.

[EMAIL PROTECTED] wrote:
>From the performance tuning guide:

The CBO peeks at the values of user-defined bind variables on the first 
invocation of a cursor. This feature lets the optimizer determine the 
selectivity of any WHERE clause condition, as well as if literals have been used instead of bind 
variables. On subsequent invocations of the cursor, no peeking takes 
place, and the cursor is shared, based on the standard cursor-sharing 
criteria, even if subsequent invocations use different bind values. 

CBO only peeks the bind variable once, so that wouldn't help much 
for star transforms and histograms.

Jared






"Jesse, Rich" <[EMAIL PROTECTED]>
 03/10/2003 01:39 PM

 
        To:     "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
        cc:     "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
        Subject:        RE: Oracle position on hints


I thought that went out the window with 9i because it can snoop at the 
bind
variables??

Rich

Rich Jesse                        System/Database Administrator
[EMAIL PROTECTED]           Quad/Tech International, Sussex, WI USA


-----Original Message-----
Sent: Monday, March 10, 2003 12:09 PM
To: Multiple recipients of list ORACLE-L


Well, I wouldn't say you should *always* use bind variables.

Many situations in a database warehouse preclude that.

Potentially long running queries may need to have literals
to help the CBO make the right choice.

Star transforms don't work with bind variables, and histograms
can't be used with bind variables.

Jared






"Nicoll, Iain" <[EMAIL PROTECTED]>
Sent by: [EMAIL PROTECTED]
 03/08/2003 06:23 AM
 Please respond to ORACLE-L

 
        To:     Multiple recipients of list ORACLE-L 
<[EMAIL PROTECTED]>
        cc: 
        Subject:        RE: Oracle position on hints


Given the attitude of most dba's that you should always use bind variables
where possible I can't see how you'd cope with skewed data without them.
Most developers should know a databases's data better than the optimiser 
and
certainly when building queries it's always worthwhile seeing where data 
is
being most effectively filtered.
 
There are lots of mature systems out there where the data characteristics
are unlikely to change much and for most in-house developers you're never
going to have to think about portability but always about performance.
 
Iain Nicoll
-----Original Message-----
Sent: 07 March 2003 16:04
To: Multiple recipients of list ORACLE-L


Hi,
 
Does Oracle have an official position on hints ?
Will they go away as the optimiser is becoming bettre or they are there to
stay ?
 
TIA
 
 

Stephane Paquette


Administrateur de bases de donnees

Database Administrator

Standard Life

www.standardlife.ca

Tél. (514) 925-7187

[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>



  

--
Bjørn Engsig, Miracle A/S
Member of Oak Table Network
[EMAIL PROTECTED] - http://MiracleAS.dk

Reply via email to