金融系のシステムでPGをやっています。
命令文の違い(PERFORM文、SEARCH文)によるCPU効率などを教えていただきたく質問しました。
先日テーブル操作を行うプログラムを製造しました。
テーブル操作を行う際に、私たちのプログラム開発課では基本SEARCH文を使うようにする、
という標準があります。
仕様書にはテーブル操作がPERFORM文でかかれていましたが、SEARCH文でコーディングしました。
しかし、SEに修正で突き返されました。
おおまかな処理概要はこうです。
・取得してきたデータ(課コード)と一致する値をテーブルから検索する
|・一致した場合(取得してきたデータとテーブル内データが)
| 同じテーブル番号の課名を返す
|・一致しなかった場合
| エラーメッセージを出力する
仕様書
IF文
|・課コードがテーブルに定義されているか調べる
| ・存在した場合
| 処理を続ける
| ・存在しなかった場合
| エラーメッセージ出力し、処理を終了する
PERFORM VARYING I FROM 1 BY 1
|(テーブル数の数を超えるまで)
|・IF文
||・課コードとテーブル定義が一致した場合
|| 課名をDATA1に移送する
|| 処理をぬける
||・一致しない場合
|| 処理を続ける
実際のコーディング
・SEARCH 課コードのテーブル
|・AT END
| エラーメッセージ出力
|・課コードがテーブルに存在したとき
| 課名をDATA1に移送する
こんな風に処理内容を書き換えました。
私は経験も浅くSEの経験はありません。
PGには分からない大きな視点をSEが持っているという言い分もわかります。
ただ、これに関しては課コードが追加されるなどの変更があった場合、
保守性の観点からも後者の方が絶対にいいと思います。
しかし一つ懸念あり、SEARCH文のCPU効率はすごい悪そう(勝手な感想)だな、ということです。
実際のところどうなのでしょうか。
またCOBOLにおいてCPU効率などが記された書籍などはあるでしょうか。
ハードウェア的な側面も考えながらコーディングできたらいいなと考えています。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。