ソートマージ


17.1.2  SORT EEのワークバッファサイズ自動見積もり機能

exsortコマンドには,ワークバッファサイズを自動で見積もる機能があります。この機能を使用すると,少量のメモリで比較的速いソートを提供するアウトコアソート,または高速なインコアソートのどちらかのワークバッファサイズを見積もる指定ができます。

ワークバッファサイズの自動見積もりでは,入力ファイルサイズ,レコード長,キーの長さ,およびソートオプションを参照します。テキストファイルおよびCSVファイルの場合は,指定した最大レコード長と,入力データの一部をサンプリングして求めたレコード長を参照します。

ワークバッファサイズの見積もり式は「17.1.1 ワークバッファサイズと処理時間」を,ワークバッファサイズの指定については「5.13 -worksizeパラメタ」を参照してください。

注意事項
  • レコード長が一定していない入力データや,指定した最大レコード長と実レコード長の差が大きい場合は,必要なサイズが見積もれないおそれがあります。自動見積もりしたサイズが必要なサイズよりも小さい場合,インコアソートを指定してもアウトコアソートで実行される,または,中間マージフェーズが動作したアウトコアソートで実行されることがあります。

  • 最大レコード長が65,536バイト以上で,-worksizeパラメタにauto(アウトコアソート)を指定した場合に確保する,最小サイズを次に示します。

    • 「入力データサイズ≧(最大レコード長+n1+n2+n3+n5)×2」の場合

      最小ワークバッファサイズ =(最大レコード長+n1+n2+n3+n5)×2

    • 「入力データサイズ<(最大レコード長+n1+n2+n3+n5)×2」の場合

      最小ワークバッファサイズ =入力データサイズ+レコード件数×(n1+n2+n3+n4)

    n1〜n5については,「表17-1 ワークバッファサイズ見積もり式の変数値(SORT EEの場合)」を参照してください。

    仮定する最大レコード長については,「14.1.4 最大レコード長設定の優先順位」を参照してください。

ソート完了メッセージ

ソート完了を示すKBLS1007-Iメッセージでは,ソート処理方式やワークバッファサイズ情報が出力されます。

  • 必要なサイズを見積もることができなかった,または割り当てられなかったとき,ソートの実行結果から必要なワークバッファサイズを再計算した見積もりサイズ「yy...y(必要なワークバッファサイズ)」を出力します。出力されたときは,性能チューニングの効果が出ていないおそれがあります。

  • -worksizeパラメタにautoを指定し,ソート処理方式「vv...v」が「outcore(PREM)」の場合,入力ファイルパラメタ(-inpfile,-catinp,-splitinp,または-joininpパラメタ)のreclenオペランドを指定することで,中間マージフェーズの動作を回避できます

    注※

    入力ファイルパラメタ(-inpfile,-catinp,-splitinp,または-joininpパラメタ)のreclenオペランドを指定した場合,ワークバッファサイズは最大レコード長で切り上げます。確保するワークバッファサイズの計算式を次に示します。

    [図データ]

    ワークバッファサイズ見積もり式の変数値は,「17.1.1 ワークバッファサイズと処理時間」を参照してください。

  • システム環境によっては,自動見積もり機能で見積もったサイズを割り当てることができない場合があります。この場合は,見積もりサイズよりも少ないサイズでソート処理を実行します。このときのソート完了を示すKBLS1007-Iメッセージには,見積もりサイズ「ww…w(自動見積もりしたワークバッファサイズ)」,および実際に割り当てることができたサイズ「xx…x(確保したワークバッファサイズ)」が出力されます。

  • インコアソートの見積もりサイズが上限値を超えたとき,アウトコアソート(auto指定を仮定)で見積もり直します。KBLS1007-Iメッセージの「ww...w(自動見積もりしたワークバッファサイズ)」には,アウトコアソートで見積もり直したサイズが出力されます。また,「yy...y(必要なワークバッファサイズ)」に,ソートの実行結果から必要なワークバッファサイズを再計算したインコアソートの見積もりサイズを出力します。KBLS1007-Iメッセージの詳細については,「付録L.2 SORT EEのメッセージ一覧」を参照してください。