| Maximizing reporting performance by:<ul><li>Partitioning data to match its likely use</li><li>Minimizing the number of records per object</li></ul> |
Reduce the number of records to query—use a value in the data to segment the query. For example, query for only a single state instead of for all states. (See Divisions.) |
| Reducing the number of joins |
<ul><li>Minimize the number of:<ul><li>Objects queried in the report</li><li>Relationships used to generate the report</li></ul></li><li>De-normalize data when practical—“over de-normalizing” the data results in more overhead. Use summarized data stored on the parent record for the report. This practice is more efficient than having the report summarize the child records.</li></ul><ul></ul> |
| Reducing the amount of data returned |
Reduce the number of fields queried—only add fields to a report, list view, or SOQL query that is required. |
| Reducing the number of records to query |
<ul><li>Reduce the amount of data by archiving unused records—move unused records to a custom object table to reduce the size of the report object.</li><li>Use report filters that emphasize the use of standard or custom indexed fields. Use index fields in report filters, whenever possible.</li></ul> |