intra-mart IM-Workflow トラブルシューティング 第21版 2023-04-01

5.2. IM-Workflow 関連のジョブの実行に時間がかかる


5.2.1. 代理先同期ジョブ(バッチ)の処理に時間がかかる

対象バージョン

  • iWP / iAF の場合

    • IM-Workflow 7.2.1 ~ 最新バージョン
  • intra-mart Accel Platform の場合

    • 2012 Autumn(Alba) IM-Workflow 8.0.1 ~ 最新バージョン

現象

代理先同期ジョブ(バッチ)の処理に時間がかかる。

条件

[同期バッチ用ワークテーブル]のレコード件数が大量である場合。

原因

IM-Workflow は、IM-共通マスタのオペレーション情報を[同期バッチ用ワークテーブル]に登録します。
代理先同期ジョブ(バッチ)は[同期バッチ用ワークテーブル]の情報を元に、IM-Workflowの代理設定を最新化します。
インポートや登録オペレーションで、大量のマスタデータがIM-共通マスタに登録された場合、これに伴い[同期バッチ用ワークテーブル]にも大量にデータが登録されます。
代理先同期ジョブ(バッチ)は[同期バッチ用ワークテーブル]のレコードをフェッチしながら、代理設定を最新化します。
したがって、処理時間は[同期バッチ用ワークテーブル]の件数に比例します。

解決方法

以下の対策が考えられます。
  1. [同期バッチ用ワークテーブル]のレコード件数を減らす。

    • IM-共通マスタの全期間インポートが必須でなければ、スナップショットインポートを検討してください。
    • 外部システムのデータをIM-共通マスタにインポートする場合、全件ではなく、その時点の差分にしてインポート件数を抑止してください。
  2. インデックスを利用して、代理先同期ジョブ(バッチ)のフェッチの処理速度を上げる。

    ご利用のデータベースのインデックスアドバイザ等を利用して、最適なインデックスを設定してください。
    チューニング分析対象のテーブル候補は以下の通りです。以下のテーブルに対してのインデックス設定を検討してください。
    • imw_w_sync_batch

コラム

以下は、過去に 弊社にてチューニング検証を行ったインデックスです。
ご利用の際には、インデックスの名称をご確認いただき、必要に応じて変更して実行するようにしてください。
ただし、データベースアクセスはデータ状態やその他の環境に依存しますので、弊社で確認したレスポンスを保証するものでありません。
あくまで参考としてご利用ください。
create index idx_imw_w_sync_batch on imw_w_sync_batch(no);