2014-02-17 78 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舉報結果也可能有意義。即使沒有特定於域的過濾參數(如我上面所建議的),也可以使用分頁來限制返回的記錄數(以及所需的相關資源)。