z/OS DFSMS Using Data Sets
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Space for the Highest-Level Index

z/OS DFSMS Using Data Sets
SC23-6855-00

Another technique to increase the speed of processing is to provide space in virtual storage for the highest-level index. To specify the address of this area, use the MSHI (main storage highest-level index) parameter of the DCB. When the address of that area is specified, you must also specify its size, which you can do by using the SMSI (size of main storage index) parameter of the DCB. The maximum value for SMSI is 65 535. If you do not use this technique, the index on the volume must be searched. If the high-level index is greater than 65 535 bytes in length, your request for the high-level index in storage is ignored.

The size of the storage area (SMSI parameter) varies. To allocate that space during execution, you can find the size of the high-level index in the DCBNCRHI field of the DCB during your DCB user exit routine or after the data set is open. Use the DCBD macro to gain access to the DCBNCRHI field (see Specifying and Initializing Data Control Blocks). You can also find the size of the high-level index in the DS2NOBYT field of the index (format 2) DSCB, but you must use the utility program IEHLIST to print the information in the DSCB. You can calculate the size of the storage area required for the high-level index by using the formula
   SMSI = (Number of Tracks in High-Level Index)
          (Number of Entries per Track)
          (Key Length + 10)

The formula for calculating the number of tracks in the high-level index is in Calculating Space Requirements. When a data set is shared and has the DCB integrity feature (DISP=SHR), the high-level index in storage is not updated when DCB fields are changed.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014