tamcre
形式
tamcre -r レコード長 -l キー領域長 -k キー開始位置 -m 最大レコード数 〔-t〕 〔-u ハッシュエントリ使用率 〔-x〕〔-y〕〕 〔-s〕 〔-d TAMデータファイル名〕 TAMファイル名
機能
指定したオプションに従ってTAMファイルを初期作成します。
オプション
●-r レコード長 〜〈符号なし整数〉((1〜1000000000))
TAMファイルのレコード長を指定します。
●-l キー領域長 〜〈符号なし整数〉((1〜1000000000))
キーの長さを指定します。
●-k キー開始位置 〜〈符号なし整数〉((0〜1000000000))
レコードの先頭からキーの開始位置までの長さを指定します。
-sオプションを指定する場合は,必ず0を指定してください。
●-m 最大レコード数 〜〈符号なし整数〉((1〜1000000000))
TAMテーブル内の最大レコード数を指定します。
●-t
TAMテーブルをツリー形式で作成する場合に指定します。
このオプションの指定を省略すると,TAMテーブルはハッシュ形式で作成されます。省略する場合は,必ず-uオプションを指定してください。
●-u ハッシュエントリ使用率 〜〈符号なし整数〉((1〜100))
ハッシュ域として使用するインデクスの使用率を指定します。
このオプションの指定を省略する場合は,必ず-tオプションを指定してください。
●-x
通常,ハッシュ形式でTAMファイルを作成する場合,初期データがあるときはシノニム領域を最適化してTAMファイルおよび共用メモリ容量を削減しています。
このオプションを指定すると,このシノニム領域を最適化しません。
このオプションは,次の場合に指定してください。
-
ハッシュ形式で,オンライン中にコマンドで追加および削除をするTAMテーブルとして使用する場合
-
ハッシュ形式で,UAPがレコードの追加および削除をするTAMテーブルとして使用する場合
●-y
ハッシュ形式のTAMファイルで使用するハッシュ関数を変更します。次のような場合に指定してください。
-
キー長の割にキー値に変化がないキーを使用する場合
-
TAMファイル作成後に,tamhslsコマンドで得られるシノニム情報が非常に大きい場合
●-s
レコードの内容からキー領域を削除する場合に指定します。
このオプションを指定した場合,TAMファイルのレコード長は,「オプションで指定したレコード長-キー領域長」となります。
●-d TAMデータファイル名 〜〈パス名〉
TAMテーブルを作るためのデータを格納するファイルの名称を指定します。
このオプションの指定を省略すると,物理ファイルの割り当てだけが行われます。
コマンド引数
●TAMファイル名 〜〈パス名〉
TAMテーブルを格納するOpenTP1ファイルシステム上に作成する物理ファイルの名称を指定します。
TAMサービス定義の定義コマンドtamtableに指定した物理ファイル名と同じ名称を指定してください。
すでにあるTAMファイル名を指定すると,エラーメッセージ(KFCA02836-E)が出力されます。まだ作成されていないTAMファイル名を指定し直してください。
注意事項
-
-tオプションと-uオプションを同時に指定するとエラーになります。
-
tamcreコマンドでハッシュ形式のTAMファイルを初期設定する場合,-mオプションで指定した最大レコード数分のインデクス領域を確保し,-uオプション(ハッシュエントリ使用率)で指定した分をハッシュ領域とします。また,データファイルから読み込むデータからシノニム領域を使用するレコード数を求め,そのレコード数分をシノニム領域として確保します。そのため,レコード数の合計は,-mオプションで指定した最大レコード数を超えます。ただし,領域は増えても,使用できるレコード数は最大レコード数までです。
-
-yオプションを指定すると,キー値からレコードを検索するためのハッシュ関数が変わり,ハッシュ値が分散する精度が上がることが期待できます。しかし,-yオプションを指定しないで作成したTAMファイルで使用するハッシュ関数と比べると,ハッシュ関数自体の性能は下がることがあります。
-
tamcreコマンドでは,作成するTAMファイルのサイズによってメモリ所要量が異なります。次に示す見積もり式に従って,メモリ所要量を算出してください(単位:バイト)。
400000+A+B+C
- (凡例)
-
A:レコード数×レコード長。-dオプション指定時だけ,Aの値を加算してください。
B:対象のTAMファイルサイズ。TAMファイルサイズの見積もり式については,「付録H.6 TAMファイルのサイズの見積もり式」を参照してください。
C:32ビット版のOSの場合は「レコード数×8」,64ビット版のOSの場合は「レコード数×16」
-
作成できるTAMファイルのサイズは1000000000バイト未満です。
TAMファイルのサイズはtamcreコマンドの-rオプションで指定するレコード長や,-mオプションの最大レコード数,-uオプションのハッシュエントリ使用率などによって決まります。上限値以内に収まらない場合はこれらの指定値を調整してください。また,これら以外にもキー長や,インデクスタイプ(ツリー形式,ハッシュ形式)などによってもサイズが異なります。
TAMファイルサイズの詳細については,「付録H.6 TAMファイルのサイズの見積もり式」を参照してください。
-
オンライン中に使用するTAMテーブルはすべてTAMテーブル用の共用メモリにロードされます。共用メモリのサイズはTAMサービスやOSとしての上限があるため,TAMファイルのサイズが上限値以内であってもTAMテーブルとしてはメモリにロードできない場合があります。
TAMテーブル用の共用メモリサイズについては,マニュアル「OpenTP1システム定義」の共用メモリの見積もり式を参照してください。