本文へジャンプ

System i スペシャリストが教えるV5 ちょっと、イイ話

第10回 パフォーマンス向上の裏ワザ SETOBJACCコマンド

ファイル、プログラムをメモリー上に常駐させる事によりパフォーマンスを向上

OS/400にはSETOBJACCというコマンドがあります。
このコマンドを使用すると目的のオブジェクト(ファイルまたはプログラム)を明示的にメモリー上にロードする事が可能です。(あるいはその反対に明示的にオブジェクトをメモリー上から除去する事も可能です。)
例えば、バッチ処理において使用する大容量のファイル(物理ファイル・論理ファイル)をバッチ処理実行の前にSETOBJACCコマンドでメモリー上にロードすることにより、処理時間を大幅に短縮する事も可能です。

SETOBJACCコマンドの有効なオブジェクト

SETOBJACCコマンドでメモリー上に展開(またはメモリー上から除去)できるオブジェクト・タイプは以下の通りです。
*FILE−物理ファイル(テーブル)、
論理ファイル・アクセスパス(インデックス、ビュー)
*PGM−RPGやCOBOLなどのプログラム

SETOBJACCコマンドの使用方法

SETOBJACCコマンドの主なパラメーターは下記の通りです。

  1. オブジェクト名(OBJパラメーター)

    操作対象となるオブジェクト名を指定。

  2. オブジェクトタイプ(OBJTYPEパラメーター)

    *FILE または *PGMを指定。

  3. 記憶域プール (POOLパラメーター)

    オブジェクトをメモリー上に展開するか、またはメモリー上から除去するかを指定。
    メモリー上にロードする場合にはロード先のプールを指定。
    *JOB オブジェクトはジョブと関連したプールにロードされます。
    *BASE オブジェクトはベースプールにロードされます。
    *SHRPOOLN 共用プールにロードしたい場合は*SHRPOOLNを指定し、プール識別コードパラメーターに共用プール番号を指定。
    *PURGE オブジェクトをメモリー上から除去します。

  4. メンバー(MBRパラメーター)

    対象がファイルの場合、主記憶域へ移入または主記憶域から削除するデータベース・ファイル・メンバーを指定します。

  5. メンバー・データ(MBRDATAパラメーター)

    対象がファイルの場合、対象はファイルのデータだけなのか、アクセスパスなのかを指定します。
    *DATA ファイルのデータだけが対象になります。
    *ACCPATH ファイルのアクセスパスが対象になります。
    *BOTH ファイルのデータとアクセスパスの両方が対象になります。

テスト結果

テスト概要:SQL SELECT文によるDB検索処理時間を測定。SQL実行直前にSETOBJACCコマンド(POOL(*BASE)を指定)でSQLで使用する対象の物理ファイル(3個)をメモリー上にロードした場合とメモリー上から除去した場合の2つのパターンを計測。物理ファイル以外に使用する論理ファイル(インデックス)もありますが、それらはメモリー上にロード済みの状態で測定しています。

1.ハードウェア

2. ソフトウェア

3. テスト方法

4.テスト結果