BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
Katsunari
Fluorite | Level 6

みなさま,教えてください.

 

プログラムの先頭でoptions compress= yes;を指定しても,DS2プロシジャでは無視されるのでしょうか?

options compress= yes;

data class;
  set sashelp.class;
run;

proc ds2;
data class1(overwrite=yes );
  method run();
    set class;
  end;
enddata;
run;
quit;

proc contents data= work._all_;
run;

よろしくお願いします.

1 ACCEPTED SOLUTION

Accepted Solutions
yu_sas
SAS Employee

無視されるのが仕様となります。

 

DS2プロシジャは原則システムオプションをサポートしていませんので、COMPRESSオプションは

効果がありません。代わりにテーブルオプションで指定するデザインとなっています。

View solution in original post

4 REPLIES 4
yu_sas
SAS Employee

無視されるのが仕様となります。

 

DS2プロシジャは原則システムオプションをサポートしていませんので、COMPRESSオプションは

効果がありません。代わりにテーブルオプションで指定するデザインとなっています。

Katsunari
Fluorite | Level 6

お返事ありがとうござます.やはりそうなのですね.

 

テーブルオプションでの指定は以下になりますでしょうか?

 

また,以下のように指定した場合,非圧縮データセットを作成した後に,データセットが圧縮される仕様でしょうか?

ディスクのIOが遅いため,compress=yesを利用しているのですが,DS2を利用する場合,その効果は期待できないのでしょうか?

proc ds2;
data class1(overwrite=yes compress=yes);
  method run();
    set class;
  end;
enddata;
run;
quit;
yu_sas
SAS Employee

指定は適切だと思います。非圧縮のデータセットを経由するということはないですので、ページ数の

減少が十分に見込めるのであれば効果はあります。ただ、一般的にCPUをよく使うような複雑な計算を

しないのであれば、DS2プロシジャを利用する利点はないとも思います。

 

When to Use DS2

Katsunari
Fluorite | Level 6

お返事ありがとうござます.

 

扱うデータセットが数十GBと大きいため,sort-by and merge-byを避けて,SQLで書いているため,

set句にSQL文を書けるDS2プロシジャを利用しようと考えたのですが...

圧縮済み20GBと圧縮済み200MGのLEFT JOINで,200GBを超えて成長していたので,圧縮されずに

作成されるのかと思っていました.もう少し,試行錯誤してみます.

 

いろいろありがとうございました.