Overflow and ISAM and Hash Tables
In hash and ISAM tables that have had a large amount of data added and have not been remodified, overflow and the resulting performance degradation is easy to understand. A keyed retrieval that normally touches one page now has to look through not only the main data page, but also every overflow page associated with the main data page. For every retrieval, the amount of disk I/O increases as the number of overflow pages increases.
Overflow pages are particular to a main data page for ISAM and hash tables, not to the table itself. If a table has 100 main pages and 100 overflow pages, it is likely that the overflow pages are distributed over many main data pages (that is, each main data page has perhaps one overflow page). A keyed retrieval on such a table possibly causes only one additional I/O rather than 100 additional I/Os.
For more information on overflow in hash tables, see
Alternate Fill Factors.
For ISAM tables, because the ISAM index is static, if you append a large number of rows, the table can begin to overflow. If there is no room on a page to append a row, an overflow page is attached to the data page. For example, if you wanted to insert empno #33, there is no more room on the data page, so an overflow page is allocated for the data page as shown in the following diagram:
Page 8 Overflow Page for Primary Page 8
|--------------------------- | |-------------------------------|
| 29 |Ramos | 31| 30000.000 | | 33 |Quinn | 33| 20000.000 |
| 30 |Brodie | 42| 40000.000 | ---> | |
| 31 |Smith | 20| 10000.000 | | |
| 32 |Horst | 26| 50000.000 | | |
|--------------------------- | |-------------------------------|
For hash and ISAM tables, one way of looking at overflow is by looking at the tids of rows and analyzing the way the tids grow in a sequential scan through the table. For more information, see
Tids.