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