前のページ|次のページ

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

SPD EngineでのBYステートメント処理時にインデックスを使用するかどうかを指定します。

該当要素: DATAステップおよびPROCステップ
デフォルト: YES
エンジン: SPD Engineのみ

構文

IDXBY=YES | NO

必須引数

YES

BYステートメントのインデックス変数を処理するときにインデックスを使用します。

注: BYステートメントに2つ以上の変数またはDESCENDINGオプションが指定されている場合は、IDXBY=YESでもインデックスは使用されません。

NO

BYステートメントのインデックス変数を処理するときにインデックスを使用しません。

IDXBY=NOの場合、BYステートメントの処理時に自動並べ替えが実行されます。

詳細

IDXBY=データセットオプションを使用する場合は、BYSORT=YESオプションを使用し、BY変数にインデックスを付けるようにしてください。
場合によっては、データを自動的に並べ替えると、SPD Engineのパフォーマンスが向上することがあります。自動並べ替えを使用するには、BYSORT=YESを設定し、IDXBY=NOを指定する必要があります。
SASシステムオプションMSGLEVEL=Iを設定し、BY処理情報がSASログに書き込まれるようにします。IDXBY=データセットオプションおよびBYSORT=YESオプションを使用すると、SASログに次のメッセージが書き込まれます。
  • IDXBY=YESでBY変数にインデックスがある場合、テーブルの行の並べ替えにそのインデックスが使用されます。次のメッセージがSASログに書き込まれます。
     NOTE: BY ordering was produced by using an index for
           table tablename.
  • IDXBY=NOの場合、次のメッセージがSASログに書き込まれます。
    NOTE: BY ordering was produced by performing an automatic sort
          on table tablename. 

比較

IDXBY=データセットオプションで、IDXBY= LIBNAMEステートメントオプションが上書きされます。

例1: IDXBY=NOデータセットオプションの使用

options msglevel=i;
proc means data=permdata.customer(IDXBY=no);
   by sales;
   by state;
run;
次のメッセージがSASログに書き込まれます。
NOTE: BY ordering was produced by performing an automatic sort
      on table PERMDATA.customer.
NOTE: There were 2981 observations read from the data set
      PERMDATA.CUSTOMER.

例2: IDXBY=YESデータセットオプションの使用

proc means data=permdata.customer(IDXBY=yes);
   var sales;
   by state;
run;
次のメッセージがSASログに書き込まれます。
NOTE: BY ordering was produced by using an index for table
      PERMDATA.customer.
NOTE: There were 2981 observations read from the data set
      PERMDATA.CUSTOMER.
前のページ|次のページ|ページの先頭へ