ページの先頭です。
ここから本文です。

よくあるご質問(サポートFAQ)

【SystemDirector Enterprise for Batch】DBデータをメモリに格納したい

質問内容

BATOOLを使用した実装方法について質問させてください。
============================= 
┌────┐┌─────┐ 
│マスタ1 ││ファイル1 │ 
└─┬──┘└─┬───┘ 
    └──┬──┘ 
          │ 
  ┌───┴────┐ 
  │ジョブステップ1 │ 
  └───┬────┘ 
          │ 
      ┌─┴──┐ 
      │マスタ2 │ 
      └────┘ 
============================= 
上記のようなジョブステップがあり、ファイル1の内容を元に、マスタから情報を引っ張ってきてマスタ2に登録を行います。

この時、ジョブステップ1の中で都度マスタ1をselect intoして情報を取得するのでは性能上問題があるため、マスタ1の情報をメモリに全件格納し、メモリと突合せを行うことで処理を効率化させることを考えています。

上記のような実装(DBのマスタデータをメモリに格納する)ような処理は、batoolではどのように実装すればよいでしょうか?

※マスタ1用とファイル1用で、フェッチループを縦に並べるのはNGと考えています(処理済み件数が曖昧になるため)。フェッチの縦並べを行わない場合の実装方法を教えていただければと思います。

回答内容

ファイル1用のFILE駆動表ループをメインループとして配置し、そのループの中に、入れ子ループとしてマスタをメモリに取り込むためのDB駆動表ループを配置し、DB駆動表ループは、フラグ変数などを使って、1回しか処理させないようにする案があります。

入れ子ループでは処理済み件数に影響があるPROCESSED_ROWS変数を変更しないので、影響は出ないです(入れ子ループでは読み飛ばし処理も行われません)。



【確認済みのバージョン】全バージョン
【確認済みの対象OS】全OS

製品名カテゴリ

SystemDirector Enterprise for Java(バッチ)/C Batch

  • コンテンツID: 3150106038
  • 公開日: 2013年10月11日
  • 最終更新日:2013年10月11日

アンケート

サポート情報充実のためアンケートにご協力をお願いいたします。



コメント欄:
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。