カテゴリー内の他の記事

関連レコード一覧の設置数によるレコード詳細画面の描画時間の違い

フォローする

(著者:サイボウズ 性能検証担当)

はじめに

関連レコード一覧フィールド(以下、関連レコード)は、同じアプリや 他アプリのレコードデータを取得し、表示することが可能な便利なフィールドです。
しかしながら、アプリのレコードデータを取得するという性質上、ひとつのアプリに関連レコードを複数個設置した場合に、
関連レコードを設置した分だけ、kintoneサーバー側で関連レコードの参照先アプリへのデータ取得処理が発生します。
そのため結果的に、kintoneのレコード詳細画面の描画が遅くなることがあります。

そこで本記事では、関連レコードの設置数により、どのくらいレコード詳細画面の描画が遅くなるのかを検証してみました。

関連レコード設置数による画面描画時間の違い

関連レコードの設置数による画面描画時間の違いが確認できるよう、
以下に記載の条件下で検証を行いました。

検証環境

  • 2019年 7月版
  • cybozu.com検証環境
  • 顧客管理(営業支援パック)アプリ
  • 案件管理(営業支援パック)アプリ
  • ブラウザ:Google Chrome (75.0.3770.100)

※顧客管理、案件管理アプリはアプリストアで公開しているものを利用

検証端末

  • CPU : Intel(R) Core(TM) i5-6300U CPU @ 2.40Ghz 2.50GHz
  • MEM : 8GB
  • OS : Windows 10 Pro バージョン 1803

検証条件

  • 顧客管理アプリ(関連レコードを複数設置するアプリ)
    • 検証する関連レコードの設置数は、1個、5個、10個、20個、30個
    • レコード数は10万件
    • アクセス権の設定なし
    • 関連レコードは、別々の案件管理アプリを参照
    • 関連レコードの絞り込み条件
      • プラン費用 (数値フィールド:特定の数値以上のもの)
      • 顧客名(文字列1行フィールド:参照先アプリ「顧客名」フィールドと等しいもの)
    • 関連レコードのソート条件
      • 初回商談日(日付フィールド:昇順)
  • 案件管理アプリ(関連レコードの参照先アプリ)
    • レコード数は10万件
    • アプリ数は30個
    • アクセス権の設定なし

アプリ構成

___________.001.jpeg

ひとつの顧客管理アプリに設置した関連レコードが、それぞれ別の案件管理アプリに紐づいている構成です。

検証内容

  • 顧客管理アプリのレコード詳細画面の画面表示にかかった時間を測定する
    測定時間:レコード詳細画面のローディングアイコンが消えた後に出力されるブラウザ開発者ツールの「finish」の値

検証結果

設置する関連レコードの数に比例して、レコード詳細画面描画にかかる時間が伸びていることがわかります。
関連レコードを30個設置した場合は、レコード詳細画面表示に約15秒かかる結果になりました。

image.002.jpeg

まとめ

今回の検証結果は、以下の条件での結果です。
  • レコードのアクセス権を設定していない
  • 各アプリが保持するレコード件数は10万件
  • 関連レコードの絞り込み条件は2件(プラン費用、顧客名)のみ

これらの設定値の他にも以下のような条件を加えることで、kintone内部の処理量が多くなり画面描画までに時間がかかることが想定されます。

  • レコードのアクセス権を設定する
  • レコード件数を増やす
  • 関連レコードの絞り込み条件を増やす

関連レコードを複数設置しているアプリでレコード詳細画面の描画時間が長い場合は、
アプリの運用上、本当に必要な関連レコードのみを設置することで、レコード詳細画面の描画時間を改善できる可能性があります。

上記条件による、関連レコードを設置しているアプリのレコード詳細画面描画時間への影響については、引き続き検証してみようと思います。

 

このTipsは、2019年7月版 kintoneで確認したものになります。

記事に関するフィードバック

直接的に記事と関連がないご質問はcybozu developer コミュニティをご活用ください。

ログインしてコメントを残してください。