参考: 大規模レポートのベスト プラクティス
大量のデータを含むレポートを最適化するために、以下のパフォーマンス ベスト プラクティスを考慮してください。
オブジェクト | ベストプラクティス |
|---|---|
レポート データ ソース | インデックスを持たない RDS ではなく、インデックス付きレポート データ ソース (RDS) を使用してレポートのパフォーマンスを最適化します。
レポートのパフォーマンスを最適にするため、必要な最小ビジネス オブジェクト インスタンスを返す RDS を選択してください。 例: 指定された日付範囲内に賞与を受け取った従業員ごとに、行を表示するレポートを実行するとします。 "All Active and Terminated Workers " レポート データ ソースを使用する代わりに、" 給与計算結果" などのトランザクション イベントをレポート データ ソースとして使用し、日付範囲と賞与タイプでフィルタします。例: 1 人の社員についてのみ結果を表示するレポートを実行するとします。社員リストをフィルタリングしたりプロンプトを設定する代わりに、" Worker from Prompt " RDS を使用します。 |
サブフィルタ | 詳細レポートのサブフィルタを使用して、関連するビジネス オブジェクトに基づいてフィルタすることができます。入れ子状態のループを避けるには、関連ビジネス オブジェクトを主ビジネス オブジェクトとして使用します。 |
レポート フィールド | 目的のデータを対象とするレポート フィールドを選択し、インデックス付きフィールドを使用して、以下のレポートのパフォーマンスを最適化します。
"グローバル" ビジネス オブジェクトから、計算フィールドとプロンプトで静的グローバル レポート フィールドを使用して、常に同じ値を返すようにします。 |
フィルタ フィールド順序 | フィールドを、制限の厳しいものから制限の少ないものへと順番に並べ替えます。フィルタ条件は、レポート定義で定義した順序で評価されます。 |
フィルタ内の計算フィールド | レポートのパフォーマンスを向上させるため、フィルタ条件の計算フィールドをできるだけ少なくします。 |
高フィルタ率 | "レポート パフォーマンス ログの表示" レポート の " 高フィルタ率" フィールドをレビューして、レポートのパフォーマンスが高いかどうかを確認します。データ ソースのインスタンス数 と フィルタされたインスタンス数 の比率が大きい場合、RDS は必要なインスタンスを効果的に提供できません。
例: " All Active Workers " RDS をマネージャ別にフィルタする代わりに、"My 直属部下" RDS を使用します。 |
レポート出力のソート | レポートのパフォーマンスを最適化するために、レポート出力のソートは避けてください。並べ替えを有効にすると、結果のサブセットがロードされるのではなく、すべての結果がレポートにロードされます。 |
有効日時 | レポートのパフォーマンスを最適化するために、有効日の使用は避けてください。インデックス付き RDS を使用するレポートでは有効日はサポートされていません。現在の日時を使用してレポートを実行するとパフォーマンスが向上します。 |
スケジューリング権限の制限 | テナントのパフォーマンスを最適化するため、レポートのスケジュールを設定できるユーザー数を必要なユーザーに制限する。レポートのスケジュールを設定する権限を持つユーザーが多数存在する場合、ユーザーがレポートをスケジュールする方法を管理者が詳細に把握したり、制御したりすることができなくなります。ユーザーがレポート出力を使用しなかったり、スケジュールされたレポートの実行を忘れていた可能性があります。 |