Direct and sequential processing: HIDAM

HIDAM is the access method that is most efficient for an approximately equal amount of direct and sequential processing.

Important: PHIDAM is the partitioned version of the HIDAM database type. The corresponding descriptions of the HIDAM database type therefore apply to PHIDAM.

The z/OS® access methods it can use are VSAM and OSAM. The specific requirements that HIDAM satisfies are:

HIDAM can satisfy most processing requirements that involve an even mixture of direct and sequential processing. However, HIDAM is not very efficient with sequential access of dependents.

HIDAM characteristics

For root segments, a HIDAM database:

  • Initially loads them in key sequence
  • Can store new root segments wherever space is available
  • Uses an index to locate a root that you request and identify by supplying the root's key value

For dependent segments, a HIDAM database:

  • Can store segments anywhere, preferably fairly close together
  • Chains all segments of a database record together with pointers

An overview of how HIDAM works

This topic contains Diagnosis, Modification, and Tuning information.

HIDAM uses two databases. The primary database holds the data. An index database contains entries for all of the root segments in order by their key fields. For each key entry, the index database contains the address of that root segment in the primary database.

When you access a root, you supply the key to the root. HIDAM looks up the key in the index to find the address of the root and then goes to the primary database to find the root.

HIDAM chains dependent segments together so that when you access a dependent segment, HIDAM uses the pointer in one segment to locate the next segment in the hierarchy.

When you process database records directly, HIDAM locates the root through the index and then locates the segments from the root. HIDAM locates dependents through pointers.

If you plan to process database records sequentially, you can specify special pointers in the DBD for the database so that IMS does not need to go to the index to locate the next root segment. These pointers chain the roots together. If you do not chain roots together, HIDAM always goes to the index to locate a root segment. When you process database records sequentially, HIDAM accesses roots in key sequence in the index. This only applies to sequential processing; if you want to access a root segment directly, HIDAM uses the index, and not pointers in other root segments, to find the root segment you have requested.