Direct and sequential processing: HIDAM
HIDAM is the access method that is most efficient for an approximately equal amount of direct and sequential processing.
The z/OS® access methods it can use are VSAM and OSAM. The specific requirements that HIDAM satisfies are:
- Direct and sequential access of records by their root keys
- Direct access of paths of dependents
- Adding new database records and new segments because the new data goes into the nearest available space
- Deleting database records and segments because the space created by a deletion can be used by any new segment
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.