General: These guidelines are applicable for both SQL-based and Fetch-based reports.
- Limit a report to display information from a specified time period, instead of displaying all records in the Microsoft Dynamics CRM database.
- Pre-filter a report so that the dataset is limited.
- Calculate aggregate totals by using SQL code or aggregations in a FetchXML query, instead of passing raw data to Reporting Services and grouping.
- Limit the number of datasets used, if possible.
- When you compare dates, use the UTC date fields for comparisons. For example, compare the createdonutc fields and not the createdon fields in a filtered view or the FetchXML query.
SQL-based Reports: These guidelines are applicable for SQL-based reports only.
- Don’t create a report that uses a large dataset or a complex SQL query available on-demand to all users.
- Don’t select all columns from a Microsoft Dynamics CRM filtered view. Instead, explicitly specify the columns that you want to select in the SQL statement.
- Use SQL stored procedures instead of inline SQL.