Oracle uses a hash function to generate a distribution of numeric values, called hash values , which are based on specific cluster key values. If you opt to use indexing rather than hashing, consider whether to store a table individually or as part of a cluster. The tables in the hash cluster are primarily static in size so that you can determine the number of rows and amount of space required for the tables in the cluster. If tables in a hash cluster require more space than the initial allocation for the cluster, performance degradation can be substantial because overflow blocks are required. The table is not static and continually growing.
Applications frequently perform full-table scans on the table and the table is sparsely populated.
A full-table scan in this situation takes longer under hashing. You cannot afford to pre-allocate the space that the hash cluster will eventually need. For information about hash functions and specifying user-defined hash functions, see Oracle8 Server Concepts. Even if you decide to use hashing, a table can still have separate indexes on any columns, including the cluster key. See the Oracle8 Server Application Developer's Guide for additional recommendations.