No free logical record exists

This example shows how insertion takes place when no free logical record exists in the CI.

The CI is split forming two new CIs, both equal in size to the original one. Where the CI is split depends on what you have coded in the INSERT=parameter on the OPTIONS statement in the DFSVSAMP data set for batch environments or the DFSVSMxx PROCLIB member for online environments.

The split can occur at the point at which the root is inserted or midpoint in the CI. After the CI is split, free logical records exist in each new CI and the new root is inserted into the proper CI in root key sequence. If, as was the case in the figure shown in A free logical record exists, logical records in the new CI contained roots with higher keys, those logical records would be pushed down to create space for the new logical record.

When adding new root segments to a HISAM database, performance can be slightly improved if roots are added in ascending key sequence.

Figure 1. Inserting a root segment into a HISAM database (no free logical record exists in the CI)
Before: Index Root21 points to CI with Root14, Root16, Root21. After inserting Root15: Index Root16 points to CI with Root14, Root 15, Root16. Index Root21 points to CI with Root21, 2 empty records.