You were brought to this page based on an internet search
and as a free service to Oracle DBAs.
The text below is an except from the book,
Oracle Performance Firefighting, written by
Craig Shallahamer of
OraPub, Inc.
Figures and tables are not included on this page, only their reference.
To order the book in either print or PDF form, click
here.
©2009, 2010 by Craig Shallahamer. This is copyrighted material.
PleaseOut of respect for those involved in the creation of the book and also for
their familes, we ask you to respect the copyright both in intent and deed. Thank you.
-------------------------------
A good hash function will yield evenly dispersed outputs. For example, regardless of the hash value, any output is just as likely to occur as any other output. More specifically, if the output range is between 0 and 9, looking at actual outputs, there are just as many 0 values as 1, 2, 3 ... 9 values. Figure 6-7 shows a histogram depicting this near-perfect result.
Figure 6-7. When given random numbers as hash value inputs, even a simple modulus hash function will provide an even distribution of outputs.
Given 1,000 random numbers between 0 and 1,000, the modulus hash function does in fact produce the histogram shown in Figure 6-7. But suppose the situation is not quite so random. Suppose the first 500 numbers are from 0 to 5 and the remaining 500 are between 0 and 1,000. Using the same modulus 10 hash function, the result is the histogram shown in Figure 6-8. This is unfortunate, because clearly the hash function does not return evenly dispersed numbers.
©2009, 2010 by Craig Shallahamer. This is copyrighted material.
PleaseOut of respect for those involved in the creation of the book and also for
their familes, we ask you to respect the copyright both in intent and deed. Thank you.
|