When inserting a large number of rows into a single table hash cluster in Oracle, it will fill up the block with any values that hash to that hash-value and then start using overflow blocks.
These overflow blocks are listed as chained off the main block, but I can not find detailed information on the way in which they are allocated or chained.
When an overflow block is allocated for a hash value, is that block exclusively allocated to that hash value, or are the overflow blocks used as a pool and different hash values can then start using the same overflow block.
How is the free space of the chain monitored – in that, as data is continued to be inserted, does it have to traverse the entire chain to find out if it has some free space in the current overflow chain, and then if it finds none, it then chooses to allocate a new block?
From the Concepts Guide (scroll down to “Hash Cluster Storage”:
This means that the overflow block is exclusively allocated to that hash value.
I don’t know the answer to your second question though.