前のページ|次のページ

ASYNCINDEX=データセットオプション

SPD Engineデータセットに複数のインデックスを作成する際、インデックスを並列作成するように指定します。

該当要素: DATASETSプロシジャ、またはINDEXデータセットオプションと一緒に使用
デフォルト: NO
エンジン: SPD Engineのみ

構文

ASYNCINDEX=YES | NO

必須引数

YES

インデックスを並列作成します(非同期)。

NO

一度に1つのインデックスを作成します(同期)。

詳細

SPD Engineでは、1回のデータセットスキャンで複数のインデックスを作成できます。SPD Engineでは、作成されたインデックスごとに1つずつスレッドが起動され、そのスレッドが同時に処理されます。各インデックスのデータセットをスキャンするよりも、インデックスを並列作成する方がずっと迅速に処理できますが、このオプションのデフォルトはNOです。これは、並列インデックス作成では、並べ替えファイルを格納するための追加ユーティリティ領域、および追加メモリが必要になるためです。リソース不十分のためインデックス作成が失敗した場合は、次のどちらかまたは両方を実行します。
  • SPDEUTILLOC=システムオプションを使用して、ユーティリティファイル領域のサイズを増やします。
  • SASシステムオプションをMEMSIZE=0に設定し、 (脚注 1) SPDEINDEXSORTSIZE=システムオプションを使用して、インデックスの並べ替えに使用されるユーティリティ領域を増やします。

例: グループ単位でのインデックス作成

DATASETSプロシジャには柔軟性があるので、複数のMODIFYグループを使用したバッチ並列インデックス作成を行えます。一度にすべてのインデックスを作成すると大量の領域が必要になりますが、そのかわりに、次の例に示すようにグループ単位でインデックスを作成できます。インデックスPatientNoおよびPatientClassは、インデックスLastNameおよびFirstNameと同様に、一緒に作成されます。その他のインデックスは連続的に作成されます。
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;
脚注 1:z/OSの場合、REGIONサイズを増やします。[戻る]
前のページ|次のページ|ページの先頭へ