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

Home -> Community -> Mailing Lists -> Oracle-L -> histograms

histograms

From: <Joel.Patterson_at_crowley.com>
Date: Wed, 13 Sep 2006 09:52:25 -0400
Message-ID: <02C2FA1C9961934BB6D16DE35707B27B02054020@jax-mbh-01.jax.crowley.com>


This is from a developer. I'm just trying to help in a timely manner, so any input or clarifications would be helpful.  

JP    

"I am strongly under the impression that the default behavior of 10g is to use the bind variable values provided on the first execution attempt to determine the execution plan, in the case where those values may matter (e.g. in the presence of histograms).  

So for one query in particular, I did something fairly clever - I actually know (of the few possible values for the histogrammed column) which are selective and which are not. I then issue the query with a subtle difference (capitalization of one letter) depending on whether a selective value was chosen or not. Thus, if a user runs the non-selective version, Oracle should give them a different execution plan. By this cleverness, I should be guaranteed that the plan that is used when a selective value is chosen, is the plan that was first developed when a selective value was

first sent. But that's what I'm complaining about below - the plan it's

using is appropriate for a non-selective value, so it's as if

  1. It didn't use the bound values in determining the plan
  2. The histogram wasn't available when it determined the plan I've even tried "alter system flush shared_pool" to force the regeneration of the plan, and that doesn't seem to work. That also seems to rule out
  3. above, because I can run queries without bind variables that definitely are sensitive to the histogram."
--
http://www.freelists.org/webpage/oracle-l
Received on Wed Sep 13 2006 - 08:52:25 CDT

Original text of this message

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