The question, ''Why isn't Oracle using my index?''
must be one of the most popular (or perhaps unpopular)
questions ever asked on the Oracle help forums. You've
picked exactly the right columns, you've got them in the
ideal order, you've computed statistics, you've checked
for null columns--and the optimizer flatly refuses to
use your index unless you hint it. What could possibly
be going wrong? If you've suffered the frustration of
watching the optimizer do something completely bizarre
when the best execution plan is totally obvious, or
spent hours or days trying to make the optimizer do what
you want it to do, then this is the book you need.
You'll come to know how the optimizer thinks, understand
why it makes mistakes, and recognize the data patterns
that make it go awry. With this information at your
fingertips, you will save an enormous amount of time on
designing and trouble-shooting your SQL. The cost-based
optimizer is simply a piece of code that contains a
model of how Oracle databases work. By applying this
model to the statistics about your data, the optimizer
tries to efficiently convert your query into an
executable plan.Unfortunately, the model can't be
perfect, your statistics can't be perfect, and the
resulting execution plan may be far from perfect. In
Cost-Based Oracle Fundamentals, the first book in a
series of three, Jonathan Lewis--one of the foremost
authorities in this field--describes the most commonly
used parts of the model, what the optimizer does with
your statistics, and why things go wrong. With this
information, you'll be in a position to fix entire
problem areas, not just single SQL statements, by
adjusting the model or creating more truthful
statistics. |
|