レポートのパフォーマンスの向上
レポートの実行に時間がかかる場合、通常は大量のデータを処理していることに起因するので、検索条件やその他の方法でデータ量を減らすことができます。レポートを最適化して、より高速に実行するには、次のベストプラクティスと推奨事項を参照してください。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic および Lightning Experience |
| 使用可能なエディション: Essentials Edition、Group Edition、Professional Edition、Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition |
- 検索条件の効率的な使用
検索条件を追加して不要なデータを削除し、返されるレコード数を制限すると、レポートの生成時間を短縮できます。ただし、複雑なロジックを使用する検索条件では、定義された検索条件と各レコードを照合して評価する必要があるため、レポートの生成が遅くなる可能性があります。レポートのパフォーマンスを最適化するには、特定の値、項目、または日付範囲でレコードを絞り込みます。また、正確な値の演算子を使用することでも、速度を向上できます。 - 列の削除と行の詳細の非表示化
多くのレポートテンプレートには、10 個以上の列が含まれています。レポートを作成する前に、不要な列を削除してください。よく使用するレポートタイプからデフォルトの列を削除することもできます。レポートにグループ化されたデータがある場合は、詳細行を非表示にできます。個別のレコードはレポートに表示されませんが、グルーピング、合計、小計、レコード件数などの詳細は引き続き表示されます。 - 効率的な数式の記述
数式は、レポートデータを評価するための強力なツールですが、非効率的に記述されている場合、レポートの実行に時間がかかる可能性があります。レポート数式のパフォーマンスを最適化するためのヒントを次に示します。 - 日付の慎重なバケット化
バケットは、レポートで返されるすべてのレコードを評価し、そのレコードがバケットに属しているかどうかを判断します。レポートの実行に時間がかかる場合は、より少ないバケットを使用するように再設計してください。 - Salesforce を介した共有ルールの簡略化
共有ルールは、レポートが使用するオブジェクトへのアクセスを制御します。複雑な共有ルールでは、レポートがオブジェクトからデータを取得するたびに共有ルールを評価する必要があるため、レポートの実行に時間がかかる可能性があります。 - レコードの物理削除
Salesforce でレコードが削除された後、復元が必要になった場合のために最大 1 か月間ごみ箱に保管されます。ごみ箱に多数の削除済みレコードが含まれている場合、レポートクエリのパフォーマンスが低下する可能性があります。ごみ箱を空にして、レポートのパフォーマンスを向上させます。 - 実行に時間がかかるレポートをピーク時間外に実行
レポートの実行にまだ時間がかかっている場合、混雑していない時間帯にレポートを実行するようスケジュールしてください。レポートを登録すると、そのレポートが準備ができたときに Salesforce から自分とチームにメールが送信されます。Salesforce では最近実行したレポートデータがキャッシュされるため、レポートを再実行することなくレポートデータを表示できます。
検索条件の効率的な使用
検索条件を追加して不要なデータを削除し、返されるレコード数を制限すると、レポートの生成時間を短縮できます。ただし、複雑なロジックを使用する検索条件では、定義された検索条件と各レコードを照合して評価する必要があるため、レポートの生成が遅くなる可能性があります。レポートのパフォーマンスを最適化するには、特定の値、項目、または日付範囲でレコードを絞り込みます。また、正確な値の演算子を使用することでも、速度を向上できます。
- 標準の検索条件の絞り込み — ほとんどのテンプレートには、[表示] 条件と [日付] 条件が含まれています。レポートで評価するレコード数を減らすには、これらの検索条件の範囲を絞り込みます。
- 正確な値による絞り込み — 特定の値を絞り込む場合、[次の文字列を含む] や [次の文字列を含まない] の代わりに、[次の文字列と一致する] や [次の文字列と一致しない] などの正確な値を比較する演算子を使用すると、パフォーマンスが向上します。[次の文字列を含む] または [次の文字列を含まない] を使用する場合、レポートでデータを返すにはより多くのステップを実行する必要があります。
- 日付範囲の定義 — [完了予定日 > 7 日前] のように範囲が限定されていない日付検索条件も、レポートを遅くする可能性があります。代わりに、[完了予定日 = 今週] のように明確な日付範囲を使用します。
たとえば、営業チームで各メンバーが担当する商談数を確認するとします。会社内のすべての商談を返すレポートを作成します。これで、必要なデータはすべて取得できますが、不要なデータも含まれるため、レポートの実行に時間がかかります。レポートの実行時間を短縮するには、チームに割り当てられた商談のみを返すようにレポートを絞り込みます (1)。レポートの実行をさらに速くするには、特定の四半期など、時間によって絞り込みます (2)。
列の削除と行の詳細の非表示化
多くのレポートテンプレートには、10 個以上の列が含まれています。レポートを作成する前に、不要な列を削除してください。よく使用するレポートタイプからデフォルトの列を削除することもできます。レポートにグループ化されたデータがある場合は、詳細行を非表示にできます。個別のレコードはレポートに表示されませんが、グルーピング、合計、小計、レコード件数などの詳細は引き続き表示されます。
レポートの詳細を非表示にするには、レポートの下部で [詳細行] をオフにします。
効率的な数式の記述
数式は、レポートデータを評価するための強力なツールですが、非効率的に記述されている場合、レポートの実行に時間がかかる可能性があります。レポート数式のパフォーマンスを最適化するためのヒントを次に示します。
- レポートタイプへの数式項目の追加 — レポートを実行すると、集計と行レベルの数式が評価されますが、これらによって実行時間が長くなります。ただし、数式項目はワークフローで実行されるため、レポートの実行を長引かせることはありません。数式を含むレポートの実行に時間がかかる場合、レポートビルダーの数式を数式項目を使用してレポートタイプに移行します。
- レポートタイプに含まれていないオブジェクトは参照しないでください。数式項目がレポートのタイプ外部のオブジェクトを参照している場合、適切に構造化されたレポートでも実行時間が長くなる可能性があります。数式項目で外部オブジェクトを参照するのではなく、オブジェクトをまとめたレポートタイプを作成して、数式項目を追加してください。
たとえば、取引先をリストするレポートがあり、取引先ごとのケースの平均数を計算する数式項目を追加するとします。数式項目を追加する前に、レポートタイプにケースオブジェクトが含まれているかどうかを確認します。含まれていない場合、取引先とケースの両方が含まれるレポートタイプに数式項目を追加します。次に、そのレポートタイプを使用してレポートを作成します。
- 行レベルの数式を慎重に使用 — 行レベルの数式は、レポートの各レコードを評価するための優れたツールですが、処理が遅くなる可能性があります。行レベルの数式を含んだ実行に時間がかかるレポートがある場合、行レベルの数式を使用しないようにレポートを再設計すると、パフォーマンスが向上する場合があります。
行レベルの数式でグループ化して実行に時間がかかるレポートがある場合、行レベルの数式グループを削除して高速化します。
行レベルの数式で絞り込む場合も、レポートの実行に時間がかかります。行レベルの数式の検索条件を削除することで、パフォーマンスを向上できます。
また、いくつかの一般的な等式はレポートビルダーに組み込まれているため、行レベルの数式は必要ありません。たとえば、合計値、最小値、最大値、平均値を得るために行レベルの数式は必要ありません。集計関数は列ヘッダーのドロップダウンから追加できます。より高度な数式が必要な場合、レポートタイプに数式項目を追加することを検討してください。
日付の慎重なバケット化
バケットは、レポートで返されるすべてのレコードを評価し、そのレコードがバケットに属しているかどうかを判断します。レポートの実行に時間がかかる場合は、より少ないバケットを使用するように再設計してください。
関連項目:
Salesforce を介した共有ルールの簡略化
共有ルールは、レポートが使用するオブジェクトへのアクセスを制御します。複雑な共有ルールでは、レポートがオブジェクトからデータを取得するたびに共有ルールを評価する必要があるため、レポートの実行に時間がかかる可能性があります。
ルールを共有する一般的な方法は、次のように複雑になっています。
- 各ユーザー権限に独自の権限セットを付与してから、各ユーザーに複数の権限セットを割り当てる。または、権限セットにできるだけ多くのユーザー権限を追加して、より少ない権限セットをユーザーに割り当てる。
- オブジェクトの複雑な共有ルールとアクセスルールを追加する。または、パフォーマンスとメンテナンスのしやすさを考慮して、ルールをシンプルに保つ。
関連項目:
レコードの物理削除
Salesforce でレコードが削除された後、復元が必要になった場合のために最大 1 か月間ごみ箱に保管されます。ごみ箱に多数の削除済みレコードが含まれている場合、レポートクエリのパフォーマンスが低下する可能性があります。ごみ箱を空にして、レポートのパフォーマンスを向上させます。
場合によっては、レコードがごみ箱から除外された場合でも、削除されたレコードのログがまだ存在し、レポートで照会できることがあります。多数のレコードを最近削除した場合、それらのログを照会すると、レポートのパフォーマンスが低下する可能性があります。

