ファイル ハンドラー構成ファイルを使用したアプリケーションの最適化

ファイル処理操作のパフォーマンスを最適化するために、ファイル ハンドラー構成ファイルで設定できる構成オプションは多数存在します。

次のような構成があります。

INDEXCOUNT
INDEXCOUNT 構成オプションを使用して、索引ファイルのノードを、ディスクに格納するのではなく、キャッシュすることで、ノードの数を減らすことができます。デフォルト (32) から増やすことでさらにパフォーマンスが向上しますが、メモリ使用量は増えます。
READSEMA

共有ファイルを変更しない入出力操作を実行し、ファイル ハンドラーでセマフォを獲得しないようにすることができます。そのようなコンテキストでは、セマフォは、ファイル内の予約された場所に適用されるロックで、複数のユーザーがファイルにアクセスすることを禁止します。この追加の呼び出しを行うと、パフォーマンスが低下します。ファイル ハンドラーでセマフォを獲得するのを停止するには、READSEMA 構成オプションを OFF に設定します。このオプションはデフォルトでは OFF になっています。

LOCKTYPE & IGNORELOCK
レコード ロックの存在のテストは、パフォーマンスの面から見てコストが高く、デフォルトではファイル ハンドラーは以下のように動作します。
  • ロックされたレコードを検出すると、ロックレコード ファイル状態を返しますが、このときにレコード領域のデータも一緒に返します。
  • ロックの必要がない読み取り操作の実行時に、ファイル ロックが設定されているかどうかを確認します。

レコード ロックの使用を調整し、以下の構成オプションのいずれかによってこのステップを飛ばすことが可能です。

  • LOCKTYPE。このオプションを 1 に設定し、ロックされたレコードにアクセスできないようにします。
  • IGNORELOCK。このオプションを ON に設定し、ロックを必要としない I/O 操作の実行時には、ロックが設定されているかどうかをファイル ハンドラーで確認しないようにします。LOCKTYPE を 1 に設定すると、IGNORELOCK の設定が無効になります。
LOADONTOHEAP
ファイルを開くときにファイル全体をメモリにロードし、すべてのファイル操作をメモリで実行するようにして、ファイルを閉じるときのみにディスクに書き込みを行うように指定できます。この動作を実行するためには LOADONTOHEAP を ON に設定します。この設定は、非共有のファイルに対してのみ実行できます。Micro Focus は、このオプションは注意して設定し、容量の小さいファイルのみで実行することを推奨します。
DATACOMPRESS
DATACOMPRESS を使用して、シーケンシャル ファイルまたは索引付きファイルのデータ圧縮を有効または無効にします。これはデフォルトで無効になっています。必要なファイルの SELECT 文の前後に指令を設定し、次に解除してファイルごとにデータ圧縮を設定できる同じ名前のコンパイラ司令もあります。
SEQDATBUF
シーケンシャル ファイルには、SEQDATBUF を使用してファイルへのアクセス時のバッファー サイズを設定します。バッファー サイズを増やすと、パフォーマンスが大幅に向上します。