Creating and Using ADABAS View Descriptors Efficiently

When creating and using view descriptors, follow these guidelines to minimize ADABAS processing and your operating system resources and to reduce the time ADABAS takes to access data.
  • Specify selection criteria to subset the number of logical records ADABAS returns to SAS.
  • Write selection criteria that enable ADABAS to use inverted lists when possible. This applies whether you specify the selection criteria as part of the view descriptor or in a SAS program. This is especially important when accessing a large ADABAS file.
    When ADABAS cannot use an inverted list, it sequentially scans the entire file. You cannot guarantee that ADABAS uses an inverted list to process a condition on a descriptor data field, but you can write selection criteria that enable ADABAS to use available inverted lists effectively.
  • Select only the data fields your program needs. Selecting unnecessary data fields adds extra processing time and requires more memory.
  • Use a BY statement to specify the order in which logical records are presented to SAS only if SAS needs the data in a particular order for subsequent processing. You can use ADABAS descriptor data fields only.
    As an alternative to using a BY statement, which consumes CPU time each time you access the ADABAS file, you could use the SORT procedure with the OUT= option to create a sorted SAS data file. In this case, SAS, not ADABAS, does the sorting. This is a better approach for data that you want to use many times.
  • If a view descriptor describes a large amount of ADABAS data and you uses the view descriptor often, it might be more efficient to extract the data and place it in a SAS data file. See Performance Considerations for more information about when it is best to extract data.
  • If you do not need all occurrences of multiple-value fields, limit the number of occurrences with the MVF statement.
  • If you reference data fields in selection criteria that are not ADABAS descriptors, it is generally more efficient to put those conditions in a SAS WHERE clause, not in the view descriptor WHERE clause.
  • To optimize WHERE clause processing, the ADABAS interface view engine uses the ADABAS L3 command when possible. However, a number of restrictions must be satisfied before the L3 command can be used. For these restrictions, see Overview of the SAS/ACCESS Interface to ADABAS.