Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> Re: Is Cursor Plan an SQL Trace Execution Plan ? ........... Basic Qs
Nigel,
I guess you are talking about the multiple SQLs hashing to single hash value. This bug is fixed long back (IIRC it is around 7.3.4 days) and now the COMPLETE SQL is used for hashing. This was due to the fact the first 4k and last 4k text were used to generate the hash value and some packaged applications (esp: Oracle Ebusinesssuite) used to have same predicates and selects in the reports and used to create lots of issues on hash collision. Now the chance for these kind of hash collisions are very remote (and may warrant a new bug!)
-Gopal
> The hash value is calculated from the SQL text only. The SQL text is the same on both databases therefore so is the hash value. The hash value is just a convenient way of "labeling" the SQL so that instead of having to compare what can be very large text strings (eg 4000 chars or more) you can match (and index) on a short hash, and then use the text itself only to distinguish the rare cases where two different SQL statements have the same hash value and so would collide in a hash table.
-- Best Regards, K Gopalakrishnan Co-Author: Oracle Wait Interface, Oracle Press 2004 http://www.amazon.com/exec/obidos/tg/detail/-/007222729X/ Author: Oracle Database 10g RAC Handbook, Oracle Press 2006 http://www.amazon.com/gp/product/007146509X/ -- http://www.freelists.org/webpage/oracle-lReceived on Sat Sep 08 2007 - 19:15:28 CDT