Re: Is Cursor Plan an SQL Trace Execution Plan ? ........... Basic Qs

  • From: "K Gopalakrishnan" <kaygopal@xxxxxxxxx>
  • To: nigel_cl_thomas@xxxxxxxxx
  • Date: Sat, 8 Sep 2007 17:15:28 -0700

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/
--
//www.freelists.org/webpage/oracle-l


Other related posts: