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]>
