【问题标题】:How to improve performance of active report in c#如何在 C# 中提高活动报告的性能
【发布时间】:2013-12-04 11:26:45
【问题描述】:

下面是我使用 Active Reports 显示报告的 C# 代码。

DataDynamics.ActiveReports.Viewer.Viewer VBatchInvoice;
List<M3.UDT.ReportData> lstReport="Values comes from database near about 800 records"
ar.DataSource = lstReport;
ar.Run();
VBatchInvoice.Document = ar.Document;

此主报告还包括一个子报告。

语句 ar.Run() 大约需要 10 秒。我的客户说时间太长了。我想尽可能地减少这个时间。这需要这么长时间才能产生的可能原因是什么?对此问题的任何解决方案将不胜感激。

【问题讨论】:

  • 另外,10 秒也可以。众所周知,活动报告的速度很慢。
  • 它的SQL Server2008R2。这个时间可以减少吗?

标签: c# activereports


【解决方案1】:

我建议阅读以下内容:

What are the generic ways to make Reporting Services faster

我还将您的注意力集中在第 3 点。

活动报告通常很慢,但您可以采取一些措施来尝试减少这种情况。

优化部分代码等。但是我怀疑这会影响您代码的 ar.run 部分。

除非您在报告本身中执行一些逻辑。您的逻辑应该在数据源处完成。这样在构建报表时,Active Reports 的工作就更少了。如果您需要在一份报告中包含 800 条记录,也值得检查一下。

此外,这可以作为一夜之间实施吗?我知道 10 分钟真的不是很长,但是如果可以做到的话。为什么不使用调度程序在夜间创建这些报告?当然,只有在经常使用报表时才应该这样做,并且只依赖于昨天的数据。

优化

同样,这可以在几个方面进行:

SQL - 确保这一端平稳高效地运行,sql 确实提供了存储过程的执行时间,这很有用。然而,除非你把事情弄得过于复杂,否则 SQL 通常是高效的。

.Net - 在这里做你的逻辑!考虑使用 DataReader 而不是 List 或 DataTable,DataReader通常更快。这里的重点是逻辑!

ActiveReports - 请不要逻辑!除非此时绝对必须这样做。

【讨论】:

    【解决方案2】:

    如果不查看您的报告布局、内容和数据源,就无法知道为什么报告需要 10 秒以及这是否合理。
    我建议查看以下 # 页数是报告、报告中的图像、子报告、总页数(第 n 页,共 m 页)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-06
      • 2019-07-12
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多