Preventing split segments from impacting performance

Split segments can negatively affect performance by requiring additional reads to retrieve both parts of the segments.

When segments are split, their prefixes remain in their existing location, but their data parts are stored in a new location, possibly in another block or CI. Replace calls can split the segments when segments in a full-function database grow larger than the size of their current location.

To prevent IMS from splitting compressed segments, you can specify a minimum size for the segments that includes extra padded space. This gives the compressed segment room to grow and decreases the chance that IMS will split the segment.

You specify the minimum size for fixed-length full-function segments differently than you do for variable-length full-function segments:

  • For fixed-length segments, specify the minimum size using both the fourth and fifth subparameters on the COMPRTN= parameter of the SEGM statement. The fourth subparameter, size, only defines the minimum size if you also specify the fifth subparameter, PAD.
  • For variable-length segments, specify the minimum size using the second subparameter, min_bytes, of the BYTES= parameter of the SEGM statement.

DEDB segments are never split by replace calls. If a DEDB segment grows beyond the size of its current location, the entire segment, including its prefix, is moved to a new location. For this reason, it is not necessary to pad compressed DEDB segments.