Subscribe to Posts by Email

Subscriber Count

    696

Disclaimer

All information is offered in good faith and in the hope that it may be of use for educational purpose and for Database community purpose, but is not guaranteed to be correct, up to date or suitable for any particular purpose. db.geeksinsight.com accepts no liability in respect of this information or its use. This site is independent of and does not represent Oracle Corporation in any way. Oracle does not officially sponsor, approve, or endorse this site or its content and if notify any such I am happy to remove. Product and company names mentioned in this website may be the trademarks of their respective owners and published here for informational purpose only. This is my personal blog. The views expressed on these pages are mine and learnt from other blogs and bloggers and to enhance and support the DBA community and this web blog does not represent the thoughts, intentions, plans or strategies of my current employer nor the Oracle and its affiliates or any other companies. And this website does not offer or take profit for providing these content and this is purely non-profit and for educational purpose only. If you see any issues with Content and copy write issues, I am happy to remove if you notify me. Contact Geek DBA Team, via geeksinsights@gmail.com

Pages

Why my SQL Profile has not been picked up?

Somtimes you might be into a situation, that you have created an sql profile and unfortunately that has not been picked up?

Well as per my reads and understanding and limited knowledge, these may be the causes.

1) Signature mismatch - SQL statements as converted to signature (with possible extra space truncation, replace literals etc)

2) Force Matching = False, Assume you have created a sql profile for a statement that contains literal values of 10,20. where the current statement is using different literals, You have to keep force_matching option to true in order to accept or work with profile even though there is a mismatch. Force Matching is something like cursor_sharing=force (tanel poder)

3) Invalid hints - Due to version changes, (Kerry Osborne) , some change in mechanism, for example, INDEX_XXX (table_name.column_name) hint is the simple INDEX(alias index_name) hint.
Note: If a hint is invalid the whole sql profile wont be invalidated, the optimizer just simply ignore that part of hint and rest of execution path will be same , but different plan

4) Dynamic Queries (Tanel Poder), Yes the dynamic generated queries may give you different combinations and its impossible to have signature will be same.

5) Category, that placed at database level is different from the category in the sql profile

6) Underlying object changes, A sql profile having with a statemetn that contains a "view" representation, but the view got changed aftersome tiem due to the view's underlying column order changes, the SEL$ may change in the view and as well as the sql profile which will be invalid and sql profile silently ignored (Confusing part, but yes can happen, I will write up with examples on this)

7) Cardinality especially when non static tables like GTT, when you create a profile when the GTT has some data in it and you want to use the same profile when GTT does not has rows at all. This may cause to change the plans and profile is of no use then (Bryan)

If anyone knows about more than above, please comment and I will update in the list too

Thanks
Geek DBA

Comments are closed.