Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報

トップ  >  #ABC

ファイルの再編成

1 ファイルの再編成

複数索引順編成ファイル(のデータファイル)とライブラリファイル(待機区分編成ファイル)は、データの追記や削除を行うことによって、ファイル内のデータが断片化を起こします。たいていの場合、データの追記や削除が行われるにつれてこのため、断片化が激しくなります。ファイルの再編成を行うことによって断片化を解消することができます。
実はライブラリファイルの場合は、再編成が必要な状況で自動的に再編成が行われるので、特に気にする必要はありません。

毎日とか毎週といった頻度で実行するものではありません。ファイルサイズや更新頻度などによりますが、ちゃんと設計されていれば、まれに実行するくらいです。
システムファイルのSYS@LMLなども基本的に下の方法で再編成可能ですが、システムのファイルなため、若干の追加の手順が必要で、いろいろと気をつけなければならないこともあります。初心者はシステムファイルに対しての再編成はなるべく避け、詳しい人と相談した方が良いでしょう。システムファイルはちょっと壊れると、システムが正しく動かなくなったりします。

2 再編成する理由
(1)ライブラリファイル

ライブラリファイルのうち、下の3つのファイルは「待機区分編成ファイル」と呼ばれる種類のものです。
・ロードモジュールライブラリ(LML)
・フォームオブジェクトライブラリ(FOL)
・MFDオブジェクトライブラリ

この種類のファイルは、ファイルの中に、さらにメンバ(サブファイル)と呼ばれるものがたくさん入る構成になっています。このメンバは、可変長でかつ連続した領域に格納することになっています。
ファイルにメンバを出し入れしているうちに、ファイル内に空き領域がバラバラに存在するようになります。ファイルにメンバを格納(登録)するには連続した領域が必要です。空き領域は十分あってもバラバラに存在するので、メンバを入れることができないようになってしまいます。
ファイルの再編成を行うことによって、ライブラリファイルの空き領域を1箇所に集め、ファイルにメンバを格納することができるようにします。(当然ながら再編成を行っても空き領域が足りなければ、メンバの登録はできない。)




ちなみにライブラリには「待機結合編成ファイル」と呼ばれるものもあります。ソースユニットライブラリ(SUL)、コンパイルユニットライブラリ(CUL)、パラメータライブラリ(PML)、ジョブストリームライブラリ(JSL)などがそれに当たります。これらのライブラリは、ファイル構造が異なるので、空き領域がバラバラにあってもメンバを登録することができます。(再編成処理は必要ない。)
あまり更新がないもので、連続した領域にあるのでメンバのロードが高速なのが「待機区分編成ファイル」(LMは頻繁に更新されることはなく、プログラムの起動は高速である必要がありますよね。)、メンバの更新が頻繁にあっても問題ない構造になっているのが「待機結合編成ファイル」(SUは何度も更新されますよね。)となっています。

(2)複数索引順編成ファイルのデータファイル

索引順編成ファイルのデータを削除すると、そのデータを格納していたレコードは削除レコードになります。再編成処理を行うことによって、これらの削除レコードを取り除いて、空き領域として1箇所に集めることができます。同時にキーファイルの更新も行われます。空き領域は全て16進”FF”で初期化されます。

3 再編成例

例としてファイルを再編成してみます。

ライブラリファイルの再編成 複数索引順編成ファイル(データファイル)の再編成