The computer does not have sufficient memory to complete the requested operation when one or more of the following conditions are true:
- A report is too large or too complex.
- The overhead of the other running processes is very high.
- The physical memory of the computer is too small.
A report is processed in two stages. The two stages are execution and rendering. This issue can occur during the execution stage or during the rendering stage.
If this issue occurs during the execution stage, this issue most likely occurs because too much memory is consumed by the data that is returned in the query result. Additionally, the following factors affect memory consumption during the execution stage:
- Grouping
- Filtering
- Aggregation
- Sorting
- Custom code
If this issue occurs during the rendering stage, the cause is related to what information the report displays and how the report displays the information.
Solution:
- configure SQL Server to use more than 2 GB of physical memory
- Schedule reports to run at off-hours when memory constraints are lower.
- Adjust the MemoryLimit setting accordingly.
- Upgrade to a 64-bit version of Microsoft SQL Server 2005 Reporting Services.
- Redesign Report like Return less data in the report queries. Use a better restriction on the WHERE clause of the report queries. Move complex aggregations to the data source.
- Export the report to a different format. You can reduce memory consumption by using a different format to display the report like Excel, PDF etc
- Simplify report design like Include fewer data regions or controls in the report or use a drillthrough report to display details.