Communicator 3000 MPE/iX Release 6.0 (Platform Software Release C.60.00) (30216-90269)

Chapter 10 157
Technical Articles
IMAGE/SQL with TurboIMAGE/XL Enhancements
anticipated growth, and synonym chain lengths. It should be such
that a minimum number of expansions are necessitated. The initial
capacity must be between 1 and 2
31
1 inclusive but must be less
than or equal to the maximum capacity. If it is not specified, or if it is
either zero or equal to the maximum capacity, dynamic capacity
expansion is not enabled for the data set, and maximum capacity is
used for the data set file creation and primary address calculation.
The initial capacity is adjusted to represent a multiple of the
blocking factor.
increment
is an optional parameter and is either the number of entries or the
percentage of the initial capacity by which the data set needs to be
expanded each time. If a percentage is used, the percent sign (%)
must follow the incremental amount. The increment is adjusted
(reduced) for the last expansion so that it does not exceed the
maximum capacity. This increment parameter can only be used if a
valid initial capacity parameter is also specified. This number must
be 1 to 100 inclusive for percent, or 1 to 2
31
1 (2,147,483,647)
inclusive for number of entries. If it is very low, there can be frequent
expansions leading to severe disk fragmentation and performance
degradation. If it is very high, DBPUT that triggers the expansion
may take long time to complete which could impact other database
users.
If the increment is not specified for the data set, or is zero, but the
initial capacity is greater than zero and not equal to the maximum
capacity, the increment for each expansion defaults to ten percent
(10%) of the initial capacity for the data set. If the initial capacity is
equal to the maximum capacity, or the initial capacity is zero, it
indicates that the data set cannot be expanded and increment is
ignored.
The enhanced syntax for the CAPACITY statement of DBSCHEMA is same
for both DDX and MDX, and is as follows:
{CAPACITY: | C:} maximum capacity [(blocking factor)]
[,initial capacity [,increment]];
Dynamic Expansion and Placement of a New Entry
The instant when the expansion is triggered and how record address is
assigned to the new entry in a master data set varies greatly from
detail data set. In a detail data set, expansion takes place during DBPUT
when the free entry count for the set is zero. In case of a master data
set, expansion is triggered during DBPUT when there is no free
(unoccupied) entry in the close proximity (within an
internally-maintained number of blocks) of the calculated primary
address of the new entry and the set is expandable. This means that an
expansion takes place even when the free entry count is greater than
zero.