ソートマージ


5.13 -worksizeパラメタ

意味

ソート処理で使用するワークバッファのサイズを指定します。

形式
-worksize {  buffer-size  [unit ]   
           | auto [ , max-buffer-size  [unit ] ]   
           | incore [ , max-buffer-size  [unit ] ] }
  • このパラメタは,ソート機能(-function sort)の指定がある場合だけ有効です。ソート機能の指定がない場合は,指定しても無視されます。

  • 環境変数「EXSORT_HI_WORKSIZE(64ビット版は「EXSORT64_HI_WORKSIZE」)」が指定された場合,-worksizeパラメタおよび環境変数「EXSORTWORKSIZE(64ビット版は「EXSORT64WORKSIZE」)」に指定された値よりも優先されます。

    次の優先順位でワークバッファサイズが設定されます。

    1. 環境変数「EXSORT_HI_WORKSIZE(64ビット版は「EXSORT64_HI_WORKSIZE」)」に設定された値

    2. -worksizeパラメタで設定された値

    3. 環境変数「EXSORTWORKSIZE(64ビット版は「EXSORT64WORKSIZE」)」に設定された値

    4. Windowsの場合,SORTの環境ファイル※1のwork_sizeオプションに設定された値

    UNIXの場合,SORTの環境変数※2「SORTOPT」の-yオプションに設定された値

    5. autoオペランドを設定(省略値)

  • auto指定時,incore指定時,または-worksize省略時,確保したワークサイズが自動で見積もりした値より小さい場合,KBLS1007-Iが出力されます。

    ワークサイズが1MB確保できない場合は,KBLS1720-Eが出力されエラーとなります。

  • 標準入力ファイルに対して,autoオペランドまたはincoreオペランドを指定した場合,ワークバッファサイズは,1MBに設定されます。

注※1

SORTの環境ファイルの設定方法については,「15.2 SORTの環境ファイルの設定(Windowsの場合)」を参照してください。

注※2

SORTの環境変数の設定方法については,「14.2 SORTの環境変数の設定(UNIXの場合)」を参照してください。

指定値
buffer-size
  • 32ビット版

    ソート処理で使用するワークバッファサイズを1〜4桁の10進数で指定します。

    指定できる範囲は,1〜2,000です。

  • 64ビット版

    ソート処理で使用するワークバッファサイズを1〜7桁の10進数で指定します。

    指定できる範囲は,1〜2,048,000です。

    ワークバッファサイズの指定範囲を「表 5-66 ワークバッファサイズの指定範囲」に示します。

unit

ソート処理で使用するワークバッファサイズの単位を指定します。

M:単位をMBにします。

G:単位をGBにします。

単位を省略した場合は,M(MB)が設定されます。

G(GB)は,64ビット版だけ指定できます。

ワークバッファサイズの指定範囲を次の表に示します。

表5‒66 ワークバッファサイズの指定範囲

SORT EEの種別

unit指定

指定範囲

桁数

32ビット版

省略

1〜2,000

1〜4

M(MB)

1M〜2,000M

1〜4

G(GB)

指定不可

指定不可

64ビット版

省略

1〜2,048,000

1〜7

M(MB)

1M〜2,048,000M

1〜7

G(GB)

1G〜2,000G

1〜4

auto

ソート処理で使用するワークバッファサイズを自動で見積もります(アウトコアソート対応)。ワークバッファサイズの見積もり式については,「17.1.1(2) アウトコアソート」の「図17-3 レコード長が65,535バイト以下で,一時ファイルを作成する(アウトコアソート)場合のワークバッファサイズ見積もり式」を参照してください。

incore

ソート処理で使用するワークバッファサイズを自動で見積もります(インコアソート対応)。ワークバッファサイズの見積もり式については,「17.1.1(1) インコアソート」の「図17-2 一時ファイルを作成しない(インコアソート)場合のワークバッファサイズ見積もり式」を参照してください。

max-buffer-size

ソート処理で使用するワークバッファサイズの最大値を指定します。

  • 32ビット版

    ソート処理で使用するワークバッファサイズを1〜4桁の10進数で指定します。

    指定できる範囲は,1〜2,000です。

    max-buffer-size省略時は,「2000(MB)」を仮定します。

  • 64ビット版

    ソート処理で使用するワークバッファサイズを1〜7桁の10進数で指定します。

    指定できる範囲は,1〜2,048,000です。

    max-buffer-size省略時は,「128(GB)」を仮定します。

    ワークバッファサイズの指定範囲は,「表 5-66 ワークバッファサイズの指定範囲」を参照してください。

ワークバッファの確保サイズ
  • buffer-size指定

    指定されたサイズで確保します。

  • auto指定

    max-buffer-sizeの指定がない場合は,見積もりサイズで確保します。

    max-buffer-sizeの指定がある場合は,見積もりサイズがmax-buffer-size指定値を超えた場合,max-buffer-size指定値を仮定します。

  • incore指定

    max-buffer-sizeの指定がない場合(32ビット版):

    見積もりサイズで確保します。

    max-buffer-sizeの指定がない場合(64ビット版):

    見積もりサイズが128GB(max-buffer-size省略時の仮定値)を超えた場合,auto(max-buffer-size指定なし)を仮定してワークバッファサイズを見積もり直します。

    max-buffer-sizeの指定がある場合:

    見積もりサイズがmax-buffer-size指定値を超えた場合,auto(max-buffer-size指定なし)を仮定してワークバッファサイズを見積もり直します。

なお,システム環境によっては,autoおよびincore指定で見積もったサイズを割り当てられない場合があります。この場合は,見積もりサイズよりも少ないサイズでソート処理を実行します。このときのソート完了を示すKBLS1007-Iメッセージには,見積もりサイズおよび実際に割り当てられたサイズが出力されます。

注意事項
  • incoreオペランドのワークバッファサイズの最大値「max-buffer-size」が小さ過ぎると,アウトコアソートとなり,期待する性能が得られないおそれがありますので,最大値の設定時は注意が必要です。

  • incoreオペランドのワークバッファサイズの最大値「max-buffer-size」が大き過ぎると,システムのメモリが不足し,システムに影響を与えるおそれがありますので,最大値の設定時は注意が必要です。

  • ワークバッファサイズの見積もりについては,「17.1 ソート機能の処理時間を短くするためには」を参照してください。

  • buffer-sizeを指定した場合,ソート完了を示すKBLS1007-Iメッセージには,ソート処理方式や確保したワークバッファサイズなどの情報「worksize=…」は出力されません。

  • buffer-sizeで指定したワークバッファサイズを割り当てられない場合は,KBLS1720-Eが出力されエラーとなります。