Can an IDMS index's IBC be changed dynamically?


Article ID: 140881


Updated On:


CA IDMS CA IDMS - Database


It is a common practice to load an IDMS index (using MAINTAIN INDEX, UNLOAD/RELOAD, or REORG) with a particular IBC (Index Block Contains) and to then increase it for general run time so that SR8s will not start to split immediately.
But can the IBC be dynamically increased?


Release : All releases
Component : CA IDMS/DB


There is no specific dynamic command to increase the IBC of an index.
The only way to change the IBC is to change it in the database definition entity where it is specified.

The IBC of an index can be specified in one of two places, either in a symbolic defined in the AREA/SEGMENT/DMCL, or directly in the SCHEMA SET definition.
(Note, specifying the IBC in the SCHEMA SET definition is the "old" way before the logical/physical separation was introduced in r12.0, and so when using this method that potential for logical/physical separation is lost).

Typically, it is specified in the symbolic in the AREA which means changing it results in the DMCL having to be recompiled.
Using the old method means only the SCHEMA and SUBSCHEMA have to be changed which can be a less invasive change to the environment.

Some other considerations:
The IBC can be overridden in the TUNE INDEX utility (see TEMPORARY INDEX UTILIZATION).
Be sure the IBC is sized such that you will get at least four SR8s per page, both for the initial load and the ultimate run time value.
IDMS is very tolerant of inconsistent IBCs it finds on the database. Even if it encounters an SR8 with a larger IBC than what is in the subschema/DMCL, it will just split it.

Additional Information

KD 56724 - Example of sizing calculations for a SYSTEM-OWNED Index sorted on Symbolic key
AREA Statements (DMCL)
SET Statement for Schema