|
|
データセットのサイズを見積もる方法
[OS] ALL
[リリース] 8.2
[キーワード] SAS 8, CONTENTS, FILE SIZE, DATASET
[質問]新規に作成するデータセットに必要なディスク容量を推定するために、データセットのサイズを見積もる計算式はありますか。 [回答]データセットのサイズは、下記の計算式で概算することができます。
新規に作成するデータセットのサイズを見積もる場合には、まず必要な変数を含む1オブザベーションのみのダミーのデータセットを作成します。そしてこのデータセットに対しCONTENTSプロシジャを実行します。
/* サンプルデータセットを作成 */
DATA test ;
INPUT a b c d e ;
CARDS;
1 2 3 4 5
;
RUN;
/* CONTENTSプロシジャを実行 */
PROC CONTENTS DATA=test ;
RUN;
CONTENTSプロシジャの出力結果から、「ページごとの最大オブザベーション数」と「ページサイズ」が分かります。以下はCONTENTSプロシジャの出力結果の一部を抜粋したものです。
-----エンジン/ホスト関連情報 -----
データセットのページサイズ: 4096
データセットのページ数: 1
データページの先頭: 1
ページごとの最大 OBS 数: 101
・
・
データセットの「ヘッダー部分のサイズ」は、Windows版では256バイト、UNIX版では8K(=8*1024)バイトです。これらの数値と想定するオブザベーション数を、最初に示した計算式に代入すると、新規に作成するデータセットのサイズを概算できます。 Windows版 SASで、上記サンプルデータセットTESTと形式が同様でオブザベーション数が1000と仮定したデータセットのおよそのサイズは、次のようなプログラムで算出できます。
/* データセットのサイズを計算 */
DATA _null_ ;
pagenum = 1 + FLOOR(1000/101) ;
datasize = 256 + (pagenum*4096) ;
PUT datasize= ;
RUN;
ログに datasize=41216 と表示されます。計算したデータセットのおよそのサイズが41,216バイトくらいになることを表しています。
|
|||||