Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: stored outlines used but wrong plan executed
Note in-line
-- Regards Jonathan Lewis http://www.jlcomp.demon.co.uk/faq/ind_faq.html The Co-operative Oracle Users' FAQ http://www.jlcomp.demon.co.uk/seminar.html Optimising Oracle Seminar - schedule updated Sept 19th "Christian Antognini" <christian.antognini_at_trivadis.com> wrote in message news:414d5a4a_at_post.usenet.com...Received on Sun Sep 19 2004 - 06:37:49 CDT
> > Since outlines are hints, we can infer that a complete
> > and legal set of hints cannot be ignored by the optimiser.
>
> If a complete and legal set of hints is used I basically agree with you.
Why
> basically? Because I already seen situations (fortunately rarely) where it
> is not the case! e.g. by copying outlines from one database (test) to
> another (production).
>
I would be very surprised if there were no differences between the test and production systems that made the hints from imported outline illegal on arrival. There are several parameters documented as "if you change this one, then an outline may cease to work". And if you change columns from "not null" to "nullable", hints may become illegal. Of course, a outline referencing a non-existent index is automatically in trouble - and test systems don't always match indexes properly. It's also possible that outlines simply don't import if you've used the 'swap outlines' code in 8i to attach an outline to a statement. If you'd said "after upgrade" I'd be much more likely to believe you. There are bugs in some of the optimiser code that allow hints to be overlooked or mis-used - my favourite was an update statement which updated the wrong table if you put the relevant hint into the code.