Region size requirements for the Build Index function
The Build Index function of FPA operates in a virtual storage region as z/OS® batch job steps. HFPMAIN0 runs in 31-bit addressing mode.
Region size for the Build Index function depends on the size of a UOW, the number of input areas, the number of output secondary index database data sets, the ITASKCTL specification, and the OTASKCTL specification. Typically, database maintenance is a relatively important function. To increase the performance of the Build Index program, it would be advisable to run it in a region that has a relatively high dispatching priority (that is, at least equal to the dispatching priority of a message processing region).
Estimating the region size for the Build Index function
The region size required for the Build Index function is a function of the size of a UOW, the number of input areas, the number of output secondary index database data set, the ITASKCTL specification, and the OTASKCTL specification.
In most cases, the specification on the EXEC statement for HFPMAIN0 of a region that is too small, is detected during the initialization processing of the main task. This causes processing to be terminated at that point. Under certain conditions, the region size shortfall does not become evident until the actual Build Index process has begun. The job must be completely rerun. Thus, the region size calculations must always be performed prior to initiating Build Index processing.
In addition, the sort program also requires region space. For how to estimate the required region size, see the DFSORT Application Programming Guide.
The following worksheet is for estimating the region size that is required for a typical Build Index job. The actual region size depends on the keywords that are specified for the job. Therefore, when you specify the region size in your JCL, use a higher value than the value calculated from this worksheet.
FPA programs, internal tables, control blocks 3,020,000
Number of areas defined in input DBD * 1,300 ---------
Number of secondary index databases defined
in output DBD * 1,400 ---------
Internal tables, control blocks 18,200
Maximum segment length * 1,000 ---------
Maximum CISZ * 4 ---------
Internal I/O buffer 1,000,000 (If ICHECK=DEFER)
subtotal ---------
Value specified on ITASKCTL * subtotal ---------
Internal tables, control blocks 21,000
Internal I/O buffer 1,000,000 (If ICHECK=NODEFER)
Storage used by sort program ---------
subtotal ---------
Value specified on OTASKCTL * subtotal ---------
Number of Build Index processed areas * 3,700 ---------
Total of CISZ * UOW1 of each area * 2 ---------
Total bytes of Build Index storage ---------
If ICACHE=YES is specified, the Build Index function preloads the IOVF part into the data space. The data space size required for the Build Index function is a total of the size of the IOVF part in each area. In addition, if the input data is an image copy data set, all image copy records are stored into the data space. In this case, the data space for the image copy data set must be added to the size that is calculated by the preceding worksheet.
The following figure shows the worksheet for estimating the data space size for Build Index function.
Total size of IOVF parts in all areas ----------
Total of CISZ * UOW1 * (ROOT1 - ROOT2) in each area ----------(If input data is IC and
ICACHE=YES is specified)
Total byte of a data space storage ----------