【问题标题】:Microsoft reporting services report taking too much time with huge data微软报告服务报告在处理大量数据时花费了太多时间
【发布时间】:2011-08-01 13:45:22
【问题描述】:

我正在使用 Microsoft SQL 报告进行报告,但由于我有大量数据,我的意思是 100000 到 1000000 条记录,所以我遇到了问题。当我检索记录时,它连接了 8 个表,所以我想知道 Microsoft 报告是否适用于这么多的数据,因为我已经阅读过文章说它会降低性能,或者是否有任何其他选项,如 Crystal Reports 或任何其他组件?

我的查询在一个存储过程中,我将它填充到 DataSet.xsd 中,然后在我的页面上使用它,使用 ObjectDataSource 将它与报表绑定。 另一件事是我必须在报告中使用图表组件。 我正在使用带有 Asp.Net 4 应用程序的 Sql server 2008 R2 标准版。

【问题讨论】:

  • 查询需要多长时间?另外,有人真的会阅读所有 1000000 行吗?如果没有,那么您应该过滤行以更接近所需的内容。
  • 我等了将近 5 分钟,它没有生成报告,是的,用户可以选择一个条件来查看所有记录。
  • 我问的是查询需要多长时间,而不是报告需要多长时间。也许这只是一个需要很长时间才能运行的查询。

标签: reporting-services sql-server-2008-r2


【解决方案1】:

我真的怀疑您的用户正在查看 100 万甚至 100k 条记录 - 您还提到了图表控件。如果您需要为它们提供灵活的聚合,请考虑将 SQL Server Analysis Services 添加到您的报告服务器并从您的在线数据构建一个多维数据集。 Excel 加载项可用于处理数字 - 非常巧妙。

也许您需要构建更多执行特定过滤或聚合的报告和过程。创建包含这么多行的报告会导致问题。

如果您可以解释您的用户如何处理所有这些数据,也许会有更好的答案。

【讨论】:

  • 我同意你的看法。分析服务作为数据源可以提供很多帮助
【解决方案2】:

您可以运行下面的查询来找出:

SELECT Name, TimeDataRetrieval,TimeProcessing,TimeRendering
    , TimeDataRetrieval+TimeProcessing+TimeRendering AS TotalTime,Format,Parameters,username,TimeStart
FROM dbo.ExecutionLog L WITH (NOLOCK)
    INNER JOIN dbo.Catalog R WITH (NOLOCK) ON L.ReportID = R.ItemID
WHERE Name='' -- update parameters for report name
AND Format>'' 
ORDER BY Name

TimeDataRetrieval 是查询执行所需的时间。

尝试在同一客户端上从 Management Studio 运行相同的查询并比较两者的执行时间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多