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文の処理に時間が掛かります。
対策
使用するキーの数を減らしてください。データの関連づけに掛かる時間を短縮できます。
環境変数CBLRDBOPURGEにYESを指定する
理由
ファイルをOUTPUTモードでオープンする場合,ファイル中のすべてのデータが削除されます。このとき,多量のデータがあると,データの削除に時間が掛かります。
対策
ファイルをOUTPUTモードでオープンする場合は,環境変数CBLRDBOPURGEにYESを指定してください。環境変数CBLRDBOPURGEにYESを指定すると,データを削除する際に内部的に発行されるSQL文にPURGE TABLEを使用するため,データを削除する時間を短縮できます。