ここでは表示性能に影響する要素について説明します。
RaySheetの表示性能を最適化するためには、オブジェクトへのインデックス付与や適切な検索条件の設定、必要最低限な要素でのビュー構成を行う必要があります。このページで説明する表示性能に影響する要素を考慮してオブジェクトとビューの最適化を行ってください。
RaySheetの表示にかかる時間は主にクエリ時間とレンダリング時間に分かれます。
Salesforceからビュー情報とレコードを取得するための時間です。Salesforceに対するリクエスト/レスポンス、Salesforce側での処理実行にかかる時間が含まれます。クエリ時間はリクエスト/レスポンスのデータ量やSalesforce側で行う処理の複雑さと対象となるオブジェクトのレコード量が影響します。
大量のレコードを保有するオブジェクトのクエリ時間は長くなります。また、クエリ時間は使用するSOQLによっても変わります。オブジェクトが保有するレコード量が多い場合は、できるだけクエリ時間を短くするSOQLを考慮する必要があります。クエリ時間を短くするためには、そのSOQLがセレクティブである必要があります。RaySheet内部で使用するSOQLは「プラットフォームイベント API」で取得することができ、クエリプランツールを使用することでそのSOQLがセレクティブかどうかを判断することができます。
クライアントでの描画とロジックの実行にかかる時間です。描画するレコードの量や数式などのクライアントロジックの複雑さと量が影響します。
使用する列や数式、条件付き書式などレンダリング時間に影響がある要素は必要最小限にするなどの考慮が必要です。
対象モード | 要素 | 表示時間の種類 | 影響度 | 説明 |
---|---|---|---|---|
シート ピボット |
オブジェクトが保有するレコード数 | クエリ | 高 | オブジェクトが保有するレコードが少ない方が表示速度が速くなります。また、使用するSOQLも表示速度に影響します。 |
シート | ページサイズ | レンダリング | 低 | 1ページに表示するレコード数が小さい方が表示速度が速くなります。 |
シート | ページ番号 | クエリ | 低 | 前のページの方が表示速度が速く、後のページの方が表示速度が遅くなります。 |
シート | 列数 | レンダリング | 中 | 列数が少ない方が表示速度が速くなります。 |
シート | 数式列 | レンダリング | 高 | 使用する数式列が少ない方が表示速度が速くなります。 |
シート | 条件付き書式 | レンダリング | 高 | 使用する条件付き書式が少ない方が表示速度が速くなります。 |
ピボット | セル数 | レンダリング | 高 | セル数が少ない方が表示速度が速くなります。 |
ピボット | 条件付き書式 | レンダリング | 高 | 使用する条件付き書式が少ない方が表示速度が速くなります。 |
クエリ時間の大部分はSOQLでレコード取得にかかる時間が占めており、大量のレコードを保有するオブジェクトからレコードを取得する場合はSOQLの考慮が必要です。SOQLでレコード取得にかかる時間は様々な要素が関係しており、単純に取得レコードを検索条件によって絞れば時間が短くなるというものではありません。以下は当社の検証環境で「100万レコードを保有するオブジェクト」から条件を変えて測定した結果です。
取得レコード数 | 取得項目数 | 検索条件 | クエリ時間 |
---|---|---|---|
50 | 3 | なし | 982ミリ秒 |
50 | 3 | 数値型(インデックスなし) | 873ミリ秒 |
50 | 3 | 数値型(インデックスあり) | 861ミリ秒 |
50 | 3 | テキスト型(インデックスなし) | 1,195ミリ秒 |
50 | 3 | テキスト型(インデックスあり) | 1170ミリ秒 |
2,000 | 15 | なし | 569ミリ秒 |
2,000 | 15 | 数値型(インデックスなし) | 883ミリ秒 |
2,000 | 15 | 数値型(インデックスあり) | 723ミリ秒 |
2,000 | 15 | テキスト型(インデックスなし) | 1,421ミリ秒 |
2,000 | 15 | テキスト型(インデックスあり) | 780ミリ秒 |
「テキスト型の検索条件よりも数値型の検索条件の方がクエリ時間が短くなる」、「インデックスありの項目を使用したほうがクエリ時間が短くなる」といった直感的に納得できる結果もあれば、「2,000レコード、15項目の場合は検索条件なしが一番クエリ時間が短い」といった直感的ではない結果もあります。
この結果からSOQLで取得にかかる時間は、検索条件やインデックスの有無だけでなく、オブジェクトの状態や取得する項目など様々な要素が関係していると考えられます。そのため、RaySheetを使用するオブジェクトの状態に適したSOQLを「プラットフォームイベント API」と「クエリプランツール 」を用いて検討することが必要です。
Copyright © 2025 MESCIUS inc. All rights reserved.