COBOL2002 ユーザーズガイド


6.9.7 プログラム作成時の留意点

HiRDBによる索引編成ファイルを使用するプログラムで,処理速度の速いプログラムを作成する場合の留意点を示します。

動的アクセス(DYNAMIC)を使用しない
理由

動的アクセスでKEY指定のREAD文を実行すると,該当レコードの読み込みと同時に以降のレコードの読み込み準備をするため,処理に時間が掛かります。

対策

KEY指定のREAD文で読み込んだレコードの次のレコードを読み込む必要がなければ,乱アクセス(RANDOM)でのKEY指定のREAD文を使用してください。乱アクセスでのKEY指定のREAD文を使用すると,以降のレコードの読み込み準備が不要なため,処理時間を短縮できます。

I-Oモードでファイルを開かない
理由

I-Oモードでファイルを開くと,更新を前提とするSQL文でRDBアクセスが行われるため,処理に時間が掛かります。

対策

DELETE文,REWRITE文,またはWRITE文でレコードを更新する必要がない場合は,INPUTモードでファイルを開いてください。更新を前提としないSQL文でRDBにアクセスできるので,処理時間を短縮できます。

START文を使用しない
理由

START文を使用すると,該当するキー条件に一致するデータを検索したあと,NEXT指定のREAD文でレコードを読み込めるように,以降のレコードの読み込み準備をするため,処理に時間が掛かります。

対策

START文およびNEXT指定のREAD文でのレコードの読み込みをKEY指定のREAD文で代替できる場合は,KEY指定のREAD文を使用してください。KEY指定のREAD文を使用すると,以降のレコードの読み込み準備が不要なため,処理時間を短縮できます。

キーに使用する項目(列)を一つにする
理由

複数のキーを使用して入出力をすると,それぞれのキーで関連づけをするため,OPEN文,START文実行後の最初のREAD文,およびKEY指定のREAD文の処理に時間が掛かります。

対策

使用するキーの数を減らしてください。データの関連づけに掛かる時間を短縮できます。

環境変数CBLD_ファイル名=RDBOPURGEまたは環境変数CBLRDBOPURGE=YESを指定する
理由

ファイルをOUTPUTモードでオープンする場合,ファイル中のすべてのデータが削除されます。このとき,多量のデータがあると,データの削除に時間が掛かります。

対策

ファイルをOUTPUTモードでオープンする場合は,環境変数CBLD_ファイル名=RDBOPURGEまたは環境変数CBLRDBOPURGEにYESを指定してください。データを削除するために内部的に発行するSQL文にPURGE TABLEを使用することで削除の時間を短縮することができます。