Maximizing IMS Performance

Among the factors that affect IMS performance is the size of the database that is accessed. If the database being accessed is very large, you should evaluate all SAS programs that you want to access the database directly. When evaluating the programs, ask the following questions:
  • Does the program need all the items included in the view descriptor?
  • Does the view descriptor's WHERE statement retrieve only those records or segments that are needed for subsequent analysis?
  • Does your WHERE statement directly generate SSAs so that only a subset of the data is passed to SAS for processing? To determine whether a WHERE statement is generating SSAs, set the SAS system option IMSDEBUG=Y or set the number of calls for which you want debugging information.
    For HDAM, avoid non-equality conditions in a WHERE statement. See Identifying Inefficient SAS WHERE Conditions for more information.
  • Can you use the DATA step's MODIFY statement to join view descriptors (where each view represents one path in the database) when conditions for a MODIFY statement's use apply?
  • Is the data going to be used by more than one procedure? If so, consider requiring the data to be extracted and placed in a SAS data file rather than accessed directly by each procedure. (See the VIEWDESC= and OUT= options in PROC ACCESS Statement Options for information about extracting IMS data.)