Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: Find a better plan than that computed by the optimizer ??
So how can you manage to find out -by looking at the result
of a 10053 trace- that the optimizer did miss something ?!?
(as long as of course you have factorial(N) join combinations,
with N as the number of tables in your FROM clause)
This is what I can't figure out...
Thanks.
"Jonathan Lewis" <jonathan_at_jlcomp.demon.co.uk> wrote...
> First of all, the optimizer is programmed to
> stop checking after a (variable) time limit,
> so it may never reach the best plan.
>
> Secondly, the optimizer has an algorithm
> to generate a set of join orders for testing,
> and may therefore skip over an order that
> would be better than any order it will otherwise
> generate. (This is, in part, a side-effect of the
> time-limit above).
>
> Third, the optimizer has a number of assumptions
> built in that may not be true for your system, so
> the best cost path it finds may be totally inappropriate
> for the system you are running.
>
> Finally, you know the business better than the optimizer,
> so there may be some information available to you that
> allows you to select a path that is technically unsuitable
> as far as the optimizer is concerned.
>
Received on Wed Feb 23 2005 - 03:11:04 CST