ソートマージ

[目次][用語][索引][前へ][次へ]

7.2.2 オペランドの意味

オペランドには,必ず指定するオペランドと任意に指定できるオペランドの2種類があります。

<この項の構成>
(1) ソートオプション
(2) 入力ファイルのファイル編成
(3) 出力ファイルのファイル編成
(4) -Lレコード長
(5) -o出力ファイル名
(6) -yワークバッファサイズ
(7) -Tディレクトリ名
(8) -T2ディレクトリ名2
(9) キー属性
(10) +キー位置-キー長
(11) 入力ファイル名

(1) ソートオプション

ソート処理で使用する機能上のオプションを指定します。ソートオプションのパラメタを次の表に示します。

表7-11 ソートオプションのパラメタ

パラメタ 意味
-d ファイル中に重複したキーのレコードがある場合,それらのデータを入力順に並べることを指定する(重複レコードの入力順序保存)。
-e 入力ファイルを排他モードでオープンする(ファイル排他)。
-i 出力ファイル名と同じ名前のファイルがすでにある場合,そのファイルの内容が書き換えられるのを防ぐ(既存ファイルの書き換え防止)。
-v EBCDIKコードの体系に従ってキーを比較する。
-q 出力データがキャッシュファイルに残っている場合,すべてのデータをファイル出力したあと,コマンドを終了する(キャッシュファイルの同期出力)。
-B※1 ソートキーが数値項目の場合,big endian※2の数値として扱う。

「-q」を指定した場合,コマンドの実行時間が長くなることがあるため注意してください。
また,入力ファイルが索引ファイルの場合は,「-e」を指定した方が処理時間が短くなります。

注※1
Linuxの場合だけ有効なオプションです。また,ソートキーが2進項目「-n」,「-m」,または内部浮動小数点項目「-f」の場合だけ有効です。

注※2
big endianとは,上位バイトを下位番地とする数値のことです。
Linuxで「-B」を指定しなかった場合は,little endian(上位バイトを上位番地とする数値)として扱います。

複数のオプションを指定する場合は,次に示すどちらかの方法で指定します。

ソートオプションのパラメタの指定は,省略できます。省略した場合は,次のようになります。

なお,ソートオプションを指定する場合は,次の点に注意してください。

(2) 入力ファイルのファイル編成

入力ファイルのファイル編成を指定します。

複数の入力ファイルを指定する場合は,指定するファイルをすべて同じファイル編成にしてください。

入力ファイルのファイル編成の指定は,省略できません。必ず指定してください。入力ファイルのファイル編成のパラメタを次の表に示します。

表7-12 入力ファイルのファイル編成のパラメタ(ソート機能)

パラメタ 意味
-S 固定長順ファイルを指定する。
-V 可変長順ファイルを指定する。
-R 固定長相対ファイルを指定する。
-W 可変長相対ファイルを指定する。
-I 固定長索引ファイルを指定する。
-X 可変長索引ファイルを指定する。
-A テキストファイルを指定する。

(3) 出力ファイルのファイル編成

出力ファイルのファイル編成を指定します。出力ファイルのレコードの形式(固定長,可変長またはテキスト)は,入力ファイルと同じにしなければなりません。

入力ファイルが順ファイル,相対ファイルまたはテキストファイルの場合,この指定は省略できます。指定を省略した場合は,入力ファイルと同じファイル編成が設定されます。入力ファイルが索引ファイルの場合は,順ファイルまたは相対ファイルのどちらかを必ず指定してください。

出力ファイルのファイル編成のパラメタを次の表に示します。

表7-13 出力ファイルのファイル編成のパラメタ(ソート機能)

パラメタ 意味
:S 固定長順ファイルを指定する。
:V 可変長順ファイルを指定する。
:R 固定長相対ファイルを指定する。
:W 可変長相対ファイルを指定する。
:A テキストファイルを指定する。

索引ファイルに出力する場合は,いったん順ファイルにデータを出力し,索引ファイルに変換します。索引ファイルに変換するには,ISAMのユティリティコマンドをパイプで連結します。索引ファイルに出力する場合のコマンドの指定例を次に示します。
(例)

[図データ]

(4) -Lレコード長

入力ファイル編成ごとのレコード長の指定方法を次の表に示します。

表7-14 入力ファイル編成ごとのレコード長の指定方法(ソート機能)

入力ファイル編成 レコード長の指定方法
固定長順ファイル ファイルのレコード長を「1〜65,535」バイトの範囲で指定します。
可変長順ファイル 指定は不要です。指定しても無視されます。
ただし,入力できるレコード長の範囲は,1〜65,535バイトです。
固定長相対ファイル
可変長相対ファイル
固定長索引ファイル 指定は不要です。指定しても無視されます。
ただし,入力できるレコード長の範囲は,1〜65,503バイトです。
可変長索引ファイル
テキストファイル ファイルの最大レコード長を「1〜65,535」バイトの範囲で指定します。レコード長には,改行文字「X'0A'」は含みません。
この指定は省略できます。指定を省略した場合は,「65535」バイトが設定されます。
なお,レコード長を指定した方が,ソート時間が短くなります。

(5) -o出力ファイル名

ソート結果の出力先ファイルをファイル名で指定します。

出力先ファイルに,入力ファイルと同じファイルの指定もできます。

この指定は省略できます。指定を省略した場合は,ソート結果を標準出力ファイルに出力します。

(6) -yワークバッファサイズ

ワークバッファとして使用するメモリの容量をKBまたはMB単位で指定します。ワークバッファサイズの指定は,メモリ量と単位で指定します。

(a) メモリ量

メモリ量の指定範囲を次の表に示します。

表7-15 メモリ量の指定範囲(ソート機能)

SORTの種別 レコード長 指定範囲
32ビット版 32,760バイト以下 128KB以上2,000MB以内の値を1〜7桁の数字で指定します。
32,760バイトより大きい 256KB以上2,000MB以内の値を1〜7桁の数字で指定します。
64ビット版 32,760バイト以下 256KB以上2,000MB以内の値を1〜7桁の数字で指定します。
32,760バイトより大きい 384KB以上2,000MB以内の値を1〜7桁の数字で指定します。

注※
可変長ファイルおよびテキストファイルの場合,最大レコード長となります。

この指定は省略できます。この指定を省略したとき,または最小メモリ量に満たない大きさが指定されたときは,1,024KBが設定されます。ただし,環境変数SORTOPTに初期値が設定されている場合は,その値が設定されます。

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

(b) 単位

メモリ量の単位が,KBかMBかを指定します。

メモリの単位指定を次の表に示します。

表7-16 メモリの単位指定

単位 意味
k 単位をKBにする。
m 単位をMBにする。

また,単位を省略した場合は,「KB(k)」で指定されます。単位の指定例を次に示します。

(例)
1,024KB → 「-y1024k」または「-y1024」
10MB  → 「-y10m」

(7) -Tディレクトリ名

ソート用一時ファイルを割り当てるディレクトリを指定します。なお,この指定は省略できます。

環境変数「TMPDIR」にディレクトリが設定されている場合は,-Tで指定したディレクトリではなく,環境変数「TMPDIR」で設定されているディレクトリ下にソート用一時ファイルが割り当てられます。

この環境変数「TMPDIR」の指定は,-Tおよび環境変数「SORTOPT」の-T指定よりも優先されます。

ソート用一時ファイルを使用する条件については,「16. 一時ファイルの作成条件とファイル容量の算出方法」を参照してください。

使用するディレクトリの優先順位を次に示します。

  1. 環境変数TMPDIRで指定したディレクトリ
  2. rsortコマンドの-Tオペランドで指定したディレクトリ
  3. 環境変数SORTOPTの-Tで指定したディレクトリ
  4. 次の表で示すディレクトリ

    表7-17 ソート用一時ファイルが割り当てられるディレクトリ

    OS ディレクトリ
    HP-UX /var/tmp
    AIXまたはLinux /tmp

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

(8) -T2ディレクトリ名2

マージ用一時ファイルを割り当てるディレクトリを指定します。なお,この指定は省略できます。

環境変数TMPDIRにディレクトリが設定されている場合は,-T2で指定したディレクトリではなく,環境変数TMPDIRで設定されているディレクトリ下にマージ用一時ファイルが割り当てられます。

この環境変数TMPDIRの指定は,-T2および環境変数SORTOPTの-T2指定よりも優先されます。

マージ用一時ファイルを使用する条件については,「16. 一時ファイルの作成条件とファイル容量の算出方法」を参照してください。

使用するディレクトリの優先順位を次に示します。

  1. 環境変数TMPDIRで指定したディレクトリ
  2. 環境変数SORTOPTの-T2で指定したディレクトリ
  3. -Tで指定したディレクトリ
  4. 環境変数SORTOPTの-Tで指定したディレクトリ
  5. 表7-17で示すディレクトリ

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

(9) キー属性

ソートキーの属性を指定します。キー属性のパラメタを次の表に示します。

表7-18 キー属性のパラメタ(ソート機能)

パラメタ 意味
-r キーを降順でソートすることを指定する。
-j キーが文字(JIS8単位コード)であることを指定する。
-c キーが文字であることを指定する。
-n キーが符号付き固定小数点2進数であることを指定する。
-m キーが符号なし2進数であることを指定する。
-p キーが内部10進数であることを指定する。
-z キーが外部10進数であることを指定する。
-x キーが左符号付き外部10進数であることを指定する。
-s キーが右分離符号付き外部10進数であることを指定する。
-t キーが左分離符号付き外部10進数であることを指定する。
-f キーが内部浮動小数点であることを指定する。
-g キーが日付(英数字)であることを指定する。

注※
ASCIIコード(0x00〜0x7F)を含む,JIS8単位コード(0x00〜0xFF)を意味します。入力データに日本語などのマルチバイト文字が含まれている場合,マルチバイト文字として扱わず,シングルバイト文字として扱います。EBCDIKコードの体系に従ってキー・項目を比較する「-vオプション(Windowsは/vオプション)」を使用できます。

「-r」を指定しないときは,キーの昇順でソートされます。また,ソートキーにするデータの属性を,「-j,-c,-n,-m,-p,-z,-x,-s,-t,-f,-g」のパラメタのどれかで必ず指定しなければなりません。降順でソートする場合は,「-rc」のようにつなげて指定します。なお,ソートオプションに「-v」を指定した場合,キーの属性を必ず「-j」で指定してください。

(10) +キー位置-キー長

キーの開始バイト位置を5桁以内の数字で指定します。開始バイト位置はレコードの先頭からのバイト位置(先頭を0とする)とします。開始バイト位置に指定できる値の範囲は次のとおりです。

また,キーのバイト長を4桁以内の数字「1〜4,096」で指定します。

この指定は,省略できません。必ず指定してください。

キーの指定範囲
キーは,次に示す範囲で指定してください。
  • 入力ファイルが固定長ファイルのとき,キーはレコード長の範囲
  • 入力ファイルが可変長ファイルのとき,キーは最小レコード長の範囲
  • 入力ファイルがテキストファイルのとき,キーは最小レコード長の範囲

(11) 入力ファイル名

ソートの入力ファイルを指定します。同じファイルは2個以上指定できません。2個以上指定するときは,それぞれは互いに異なっていなければなりません。

入力ファイルが順ファイル,相対ファイルまたはテキストファイルの場合,この指定は,省略できます。省略したときは,入力ファイルに標準入力ファイルが設定されます。入力ファイルが索引ファイルの場合は,この指定は省略できません。