前のページ|次のページ

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

I/O操作で使用するオブザベーションブロックのサイズをバイト単位で指定します。

該当要素: DATAステップおよびPROCステップ
デフォルト: 1,048,576バイト(1 MB)
範囲: 最小ブロックサイズは32,768バイトです。最大ブロックサイズはSPD Engineデータパーティションファイルの半分のサイズです。
制限事項: データセットの読み取り時に、ブロックサイズがパフォーマンスに大きな影響を及ぼすことがあります。データの大部分を取得する場合、ブロックサイズが大きい方がパフォーマンスが向上します。ただし、WHERE処理などで、データのサブセットを取得する場合は、ブロックサイズが小さいほうがパフォーマンスが上がります。
エンジン: SPD Engineのみ

構文

IOBLOCKSIZE=n

必須引数

n

オブザベーションブロックのバイト単位でのサイズです。

詳細

I/Oブロックサイズによって、I/O操作で物理的に一緒に転送されるデータ量が決定されます。ブロックサイズが大きいほど、I/Oは少なくなります。SPD Engineでは、メモリ内のブロックを使用して、データコンポーネントファイルでの読み書き対象のオブザベーションを収集します。IOBLOCKSIZE=データセットオプションでは、ブロックのサイズが指定されます。(実際のサイズは、nバイトの指定サイズに収まるオブザベーション最大数に対応するように計算されます。したがって、実際のサイズはオブザベーションの長さの倍数になります)。
ブロックサイズは、圧縮データセット、非圧縮データセット、および暗号化データセットに対するI/O操作に影響します。ただし、その影響はさまざまで、I/O操作に依存します。
  • 圧縮データセットの場合、ブロックサイズによって、一緒に圧縮されるオブザベーションの数が決定されます。これにより、読み取り操作と書き込み操作の両方について物理的に転送されるデータの量が決定されます。ブロックサイズはファイルの永久属性です。異なるブロックサイズを指定するには、データセットを新しいデータセットにコピーし、出力ファイルに対して新しいブロックサイズを指定する必要があります。圧縮データセットの場合、読み取り操作と書き込み操作のどちらでもブロックサイズが大きい方がパフォーマンスを向上させられます。
  • 暗号化データセットの場合、ブロックサイズはファイルの永久属性です。
  • 非圧縮データセットの場合、ブロックサイズによって、ディスクからメモリへのデータ読み取りに使用されるブロックのサイズが決定されます。ブロックサイズは、データのディスクへの書き込み時には、影響はありません。非圧縮データセットの場合、ブロックサイズはファイルの永久属性ではありません。つまり、実行する読み取り操作に基づいて異なるブロックサイズを指定できます。たとえば、ランダムに分散されたデータの読み取りや、データのサブセットの読み取りでは、ブロックサイズを小さくする必要があります。これは、小さいブロックにアクセスする方が、大きいブロックにアクセスするよりも速いためです。それとは対照的に、均等もしくは順番に分散されたデータ、またはデータセット全体のスキャンが必要なデータの読み取りは、ブロックサイズが大きいほうがより適切に動作します。

比較

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

例: IOBLOCKSIZE=の使用

/*IOBLOCKSIZE set to 64K */
data sport.maillist(ioblocksize=65536);
/*IOBLOCKSIZE set to 32K */
data sport.maillist(ioblocksize=32768 compress=yes);
前のページ|次のページ|ページの先頭へ