PowerSORTは、指定された範囲内の作業域を使用して処理を行ないます。
指定が省略された場合は、次のように作業域の大きさを決定します。
入力がファイルの場合は、PowerSORTが適切な作業域を計算して使用します。
入力がファイル以外の場合、または標準入力の場合は、8MBの作業域を使用します。
割り当てた作業域内にすべての入力レコードが読み込めた場合、一時ファイルを使用せずに作業域内だけでソート処理を完了します(これをインコアソートといいます)。インコアソートは、一時ファイルへの入出力がないことなどから一般に処理時間が短くなります。このため、入力レコードの量に合わせて適切な作業域の大きさを指定することで、処理時間の短縮が可能です。ただし、作業域の大きさの指定には次のような注意が必要です。
インコアソートを行うためには、入力レコードの全体量に対して少し多めの作業域(1.3倍程度。ただし、キーの種類、使用する機能などにより大きくなる場合があります)を指定します。
使用可能な物理メモリ量を超えて作業域を指定すると、性能が悪化することがあるため、使用可能な物理メモリ量を超えないように指定します。
参照
環境変数BSORT_MEMSIZE
実行環境オプション(-option)のmemsizeオペランド
bsrtopen関数におけるBSRTPRIM構造体のmemory_size