PHYSICAL SECTIONS Option

The PHYSICAL SECTIONS option divides a set structure in physical sections. Sectioning a set reduces lock contention among tables and enables you to balance tables dynamically by running an online garbage collection. The physical sections, which are similar to logical sections, provide greater access to the set by increasing the number of root table locks that the system can hold simultaneously. However, physical sectioning also increases storage capacity.

The PHYSICAL SECTIONS option requires that the EXTENDED attribute be specified for the related data set. You can specify the PHYSICAL SECTIONS option or disjoint index sequential sets only.

Link items are not allowed to point to a physically sectioned set. A partitioning set cannot be physically sectioned. The set structure is physically divided in defined sections by means of a single section table, which is composed of multiple root tables. The section table resides on the section 0 file, and each physically sectioned file has its own root table.

When a set is physically sectioned, the following operations cause a file format change and require a DASDL update, control file update, and reorganization:

  • Adding or deleting sectioning to an existing set

  • Adding, deleting, or changing the section bounds specification

Key Bound Values

You can physically section a set by specifying the PHYSICAL SECTIONS option with key bound values. For each key item in the set, you declare the key range by specifying the

  • Upper bound value for ascending keys

  • Lower bound value for descending keys

Each section specification is separated with a semicolon (;). The maximum number of sections you can declare with multiple bound values is 512. The result is that each section contains records whose key values lie within a specified key range.

There is always a last section that contains all values outside the last user-specified range.

Characteristics of the key range are as follows:

  • If the size of the specified key value is less than the size of the declared numeric, real, or field key item, the system pads the value on the left with zeros.

  • If the size of the specified key value is less than the size of the declared ALPHA key item, the system pads the value on the right with

  • hexadecimal F values if the key is ascending

  • hexadecimal 0 values if the key is descending

The following example illustrates the DASDL syntax for physical sections of an index sequential set:

S  SET OF DS KEY IS (K1, K2)
   PHYSICAL SECTIONS
   (
       K1 = 10,   K2 = 3000;
       K1 = 30,   K2 = 5000;
       K1 = 60,   K2 = 8000;
       K1 = 100,  K2 = 9000;
   );  % K1> 100 go into a 5th section (#5)