2014-02-17 41 views
0

我在SQL Server 2012中有3个真正大的表,全都与电话号码有关。当我创建与Visual Studio BI报表向导的报告我收到以下错误:SQL Server Reporting Services返回的记录太多

"An error occurred during local report processing. An error has occurred during report processing. Exception of type 'System.OutOfMemoryException' was thrown."

我认为该报告返回太多的记录,如果它运行。如何停止自动运行报告?还是其他建议?

报告中使用的查询如下。

SELECT table1.customer_phone, table2.PhoneNumber, table3.ANI 
FROM LMIRSessions INNER JOIN 
        table1 ON table2.PhoneNumber = table1.customer_phone INNER JOIN 
        table3 ON table2.PhoneNumber = table3.ANI 
+0

做一个select count(1)来获得返回记录的数量,让每个人都了解“大”表的含义。这可能有助于答复 – Lereveme

回答

1

考虑增加一个或多个parameters在SSRS报告限制返回记录的数量:

  • 的参数可以缩小认为PhoneNumber价值观 - 通过准确或模式相匹配。

  • 也许有合理的参数来缩小日期和/或时间太长(由表名LMIRSessions,我希望可以有一个像SessionStartSessionEnd栏目设置看),该报告的结果。

  • 最后(也可以通过表名LMIRSessions来判断),可能有可能通过会话类型或结果缩小报表结果的参数。

考虑paging举报结果也可能有意义。即使没有特定于域的过滤参数(如我上面所建议的),也可以使用分页来限制返回的记录数(以及所需的相关资源)。