HOME


流通工房について

各フェーズ定義


トピックについて

Link


サイトマップ

書籍・プロフィール

サイト内検索

-------------------------









流通業・流通システムにおけるシステム設計の実務ノウハウが満載−流通工房

実装OnePoint!
【ワークテーブル
<吉田君>
 この間、バッチ処理や帳票出力ではワークテーブルを使うことを考慮して設計するようにと
 言っていたのですがもう少し詳しく教えて下さい

<早瀬>

 それぞれ目的は異なるんだ。
 バッチ処理では処理パフォーマンスと障害時の調査の観点。帳票は再出力などの観点からになる。
 詳細は下記を参照してくれ


【ポイント】
トピックとしては詳細設計フェーズに該当。
あまり規模の大きいシステムを設計、開発がしたことがない人やオンライン処理の設計、開発
がメインだった人はなかなかワークテーブルを使おうとしないのだが、このワークテーブルを
を使うことは非常に有効な手段だ。具体的なポイントを以下に記載します。

●バッチ処理におけるワークテーブル
 例えばCOBOLやC言語などを使い、一旦DBからファイルへデータを落として処理をする場合は
 不要だが、SQLのみ(オラクルであればPL/SQLのみ)でバッチ処理を設計、開発する場合は
 以下の観点からワークテーブルを使うことを検討したほうが良い
 
 1.パフォーマンス
   バッチ処理では大量のトランザクションデータをINにして処理をすることが多い。
   また、処理によっては5つ以上のテーブル情報を必要とすることもある。
   この際に、一度のクエリーでテーブルを結合して取得しようとしたり、ループ処理で
   実行しようとすると非常に処理時間が長くなってしまうケースが多い。
   
   特にトランザクションテーブルのデータはものによって1年間や2年間といった期間の
   データを保持することが多いが、バッチ処理で使うのはその中の当日分、あるいは当月
   分となる。まず、その対象データと必要なマスタからの情報を結合して抜き出しておき
   それをバッチ処理のメインデータとすることでかなりの処理時間の圧縮が可能となる

 2.障害時の調査、リラン
   バッチ処理の中間データとなる情報がワークテーブルにあることで、ある処理で異常
   終了したときに、その異常終了した箇所の後からの実行が可能となり処理時間を短縮
   することが出来たり、エラーとなった原因データの特定が行いやすくなる(ひとつの
   クエリーでデータを取得し処理をしている場合などはそのクエリーを実行して、エラー
   となったデータを特定することになる)

   よって、ワークテーブルのデータはバッチ処理の最初に前回分を削除するようにし
   次のバッチ処理まではそのワークテーブルのデータは残しておくようにした方が良い

●帳票におけるワークテーブル
 帳票においても、複雑な帳票などはワークテーブルにデータを一旦出力することで
 帳票出力のパフォーマンスを良くすることができる。ただ、もう一つ重要なポイントが
 あり、それは「再出力」だ
 帳票はある一定時点の静的な情報であり、特に締め処理や管理表などの管理帳票は
 再出力する際に作成、出力した時点と同じデータの出力が必要となることがある。

 これを都度トランザクションデータから出力するようにしていると、データ修正や
 マスターデータの変更などにより、再出力したデータが最初に出力した時とデータ内容
 が変わってしまうことがある。そのため、帳票については出来る限り出力する帳票の
 項目レイアウトに近い、出力直前のデータをワークテーブルに保持するようにしておいた
 方が良い

 なお、管理帳票などは1年間や2年間など一定期間データを保持しておく必要があるので
 保持期間などは確認が必要だ。
 
 また、帳票によっては複数の人が、異なるキーで出力することもあるので、ワークテーブル
 にユーザIDや出力日時などをキーに持ち、複数メンバーが出力できるようにするなどの
 考慮も必要

質問 このトピックの情報は役立ちましたか?
役に立った
目的の情報と異なったが、参考になった
役に立たなかった

コメント




結果