TABLE と PF の違い

CRTPF コマンドで物理ファイルを作成するのと、オペレーション・ナビゲーターにしろ対話型SQL にしろ CREATE TABLE で作成するのと、だいたい同じものが作成されます。
つまり、CRTPF で作成した物理ファイルも、SQL を使用して TABLE としてアクセスできるし、CREATE TABLE で作成されたテーブル(表)は OS/400 オブジェクトとしては物理ファイルになります。

と、この2つは同一のものではなく、要はコマンド発行時のデフォルトのパラメータが異なって作成される同一のオブジェクトになっています。
どこが異なるのかをかんたんに見ていきましょう。

(2005/6/4 追記: CPYF で動きが違ったりもします。こちらも見てみてください)


MAXMBR (メンバーの最大数)

テーブルはメンバーを 1つしか持ちません。ですのでこのパラメータは CREATE TABLE 実行時には 1 にセットされます。
CRTPF でもデフォルトの値は 1 ですが、*NOMAX で指定されて作成されている物理ファイルもめずらしくはないでしょう。(*NOMAX は V5R1 では 32767個を示します)

SIZE (メンバー・サイズ)

メンバー毎の初期レコード数、増分レコード数、増分の回数を指定します。

CREATE TABLE のデフォルトでは *NOMAX です。
CRTPF では 10000 レコードが初期値です。増分が 1000 で 3回までなので、13000 レコードになるとメンバーが一杯だというメッセージが出ます。

REUSEDLT (削除済みレコードの再使用)

削除したデータ項目が使用していたエリアを新しい挿入要求で再利用するかどうかを指定します。

CREATE TABLE では *YES がデフォルトです。
CRTPF では *NO がデフォルトです。

DLTPCT (許される削除レコード の最大 %) というパラメータがあり、物理ファイル内の各メンバーに対する削除済みレコードの最大許容比率を指定します。比率の検査はメンバーのクローズ時に行なわれ、削除済みレコードの比率がこのパラメーターで指定した値より大きかった場合にはシステム活動記録ログ (QHST) にメッセージが送られます。
このデフォルトの値は CREATE TABLE も CRTPF も共に *NONE ですが、REUSEDLT パラメータのデフォルト指定値の違いにより、QHST へのメッセージのタイミングに差が出てくるでしょう。

[Top Pageに戻る]

Ads by TOK2