ASYNCINDEX= Data Set Option

Specifies to create indexes in parallel when creating multiple indexes on an SPD Engine data set.
Valid in: DATA step and PROC step
Default: NO
Engine: SPD Engine only

Syntax

ASYNCINDEX=YES|NO

Required Arguments

YES
creates the indexes in parallel (asynchronously).
NO
creates one index at a time (synchronously).

Details

The SPD Engine can create multiple indexes for a data set at the same time. The SPD Engine spawns a single thread for each index created, and then processes the threads simultaneously. Although creating indexes in parallel is much faster than creating one index at a time, the default for this option is NO. Parallel creation requires additional utility work space and additional memory, which might not be available. If the index creation fails due to insufficient resources, you can do one of the following:
  • set the SAS system option to MEMSIZE=0(footnote1)
  • increase the size of the utility file space using the SPDEUTILLOC= system option
You increase the memory space that is used for index sorting using the SPDEINDEXSORTSIZE= system option. If you specify to create indexes in parallel, specify a large-enough space using the SPDEUTILLOC= system option.

Example: Creating Indexes in Groups

The DATASETS procedure has the flexibility to use batched parallel index creation by using multiple MODIFY groups. Instead of creating all of the indexes at once, which would require a significant amount of space, you can create the indexes in groups as shown in the following example:
proc datasets lib=main;
   modify patients(asyncindex=yes);
      index create PatientNo PatientClass;
   run;
   modify patients(asyncindex=yes);
      index create LastName FirstName;
   run;
   modify patients(asyncindex=no);
      index create FullName=(LastName FirstName)
        ClassSex=(PatientClass PatientSex);
   run;
quit;
FOOTNOTE 1: for OpenVMS on HP Integrity Servers, increase the paging file quota (PGFLQUO); for z/OS, increase the REGION size.[return]