Here are some guidelines that can help you improve the performance of the report.
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.
· 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.
Hope it helps!