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

5.4. 案件一覧の表示が遅い

関連する現象


5.4.1. 案件一覧の表示が遅い

対象バージョン

  • iWP / iAF の場合

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

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

現象

案件一覧の表示が遅い。

条件

案件数が膨大である場合。

原因

案件一覧画面は、フローグループツリーの表示の際に、ログインユーザが参照可能な案件であるフローごとの案件数を取得します。
案件数の増大により、取得の処理時間が増加します。

解決方法

以下の対策が考えられます。
  • インデックスを利用したチューニングを行う。

    ご利用のデータベースのインデックスアドバイザ等を利用して、最適なインデックスを設定してください。
    チューニング分析対象のテーブル候補は以下の通りです。以下のテーブルに対してのインデックス設定を検討してください。
    • 案件一覧-処理済み(完了案件)の場合

      imw_t_cpl_matter
      imw_t_cpl_matter_user
      imw_t_cpl_matter_task
      imw_t_cpl_matter_user_data
      imw_t_cpl_user
      
    • 案件一覧-未処理の場合

      imw_t_actv_matter
      imw_t_actv_executable_user
      

      コラム

      以下は、過去に 弊社にてチューニング検証を行ったSQLServer用のインデックスです。
      ご利用の際には、インデックスの名称をご確認いただき、必要に応じて変更して実行するようにしてください。
      ただし、データベースアクセスはデータ状態やその他の環境に依存しますので、弊社で確認したレスポンスを保証するものでありません。
      あくまで参考として利用してください。
      CREATE NONCLUSTERED INDEX idx_imw_t_cpl_matter ON imw_t_cpl_matter (system_matter_id, status, flow_id) INCLUDE (priority_level, user_data_id, matter_name, matter_number, flow_version_id, apply_auth_user_code, apply_execute_user_code, apply_act_flag, apply_date, apply_base_date, matter_cpl_date);
      CREATE NONCLUSTERED INDEX idx_imw_t_cpl_mat_usr ON imw_t_cpl_matter_user (auth_user_code, locale_id) INCLUDE (system_matter_id,task_id,auth_user_name,auth_company_code,auth_company_name, auth_orgz_set_code,auth_orgz_code,auth_orgz_name,execute_user_code,execute_user_name,operate_user_code,operate_user_name);
      CREATE NONCLUSTERED INDEX idx_imw_t_cpl_matter_task ON imw_t_cpl_matter_task (system_matter_id, task_id, node_id, node_type, status) INCLUDE (act_flag, node_name, start_date, end_date);
      CREATE NONCLUSTERED INDEX idx_imw_t_cpl_matter_user_data ON imw_t_cpl_matter_user_data (user_data_id, matter_property_key) INCLUDE (matter_property_value);
      CREATE NONCLUSTERED INDEX idx_imw_t_cpl_user     ON imw_t_cpl_user (task_id, locale_id)  INCLUDE (system_matter_id, auth_user_code, auth_user_name, auth_company_code, auth_company_name, auth_orgz_set_code, auth_orgz_code, auth_orgz_name, execute_user_code, execute_user_name, operate_user_code, operate_user_name);
      CREATE NONCLUSTERED INDEX idx_imw_t_actv_matter  ON imw_t_actv_matter (user_data_id)     INCLUDE (last_process_date, priority_level, system_matter_id, matter_name, matter_start_date, matter_number, flow_id, flow_version_id, apply_auth_user_code, apply_execute_user_code, apply_act_flag,   apply_date, apply_base_date);
      CREATE NONCLUSTERED INDEX idx_imw_t_actv_executable_user ON imw_t_actv_executable_user (auth_user_code,locale_id,flow_id,invalid_flag);