【发布时间】:2012-12-11 17:21:03
【问题描述】:
我们有 SQL 2012 Express 的 SSRS 报告。我们需要以 OPENXML 格式导出报告。有一个 C# 控制台应用程序将所需的参数传递给 SSRS,检索导出的报告并将其保存到文件中。我们的报告有一些参数在生成报告之前是未知的。
使用 HttpWebRequest 导出报告。当我们有大约 50,000 行的中型报表时,一切正常。但是当我们有 500,000 行的报告时,eportingServicesService.exe 开始消耗服务器上所有可用的 RAM,并且 SSRS 经常因 OutOfMemory 异常而崩溃。我们还尝试了 ReportServer 组件来导出报告,但这没有任何区别。
有什么方法可以告诉 SSRS 它不应该尝试一次生成整个报告,而是分块发送或通过 HttpWebResponse 流式传输?生成的文件只有大约 40MB,所以我真的不清楚为什么 SSRS 服务在生成此报告时使用超过 500MB 的 RAM 和 100% 的 CPU。
【问题讨论】:
-
你可能处于“最前沿”——祝你好运!
-
您可能是对的,我们最终将直接从数据库中导出。看来,SSRS 对于这样的任务来说太重了,或者可能有一些隐藏的调整......
-
SSRS 可能是一个糟糕的选择——大容量数据导出显然不是它的主流。但我怀疑大多数/许多工具都会在这种规模的 XML 文档中遇到困难。请注意,OPENXML 格式已压缩,因此 40MB 将代表一个更大的未压缩 XML 文件。
标签: c# reporting-services export sql-server-express ram