【问题标题】:SQL Server Reporting: Generating reports by writing own code OR using any reporting serverSQL Server 报告:通过编写自己的代码或使用任何报告服务器生成报告
【发布时间】:2016-04-01 08:08:34
【问题描述】:

我们有一个中等大小的 sql 2008r2 数据库,大约有 400 万行在一个表中。我们还有大约 15 份不同的报告,我猜 60% 围绕这张桌子及其子项展开。用户可以生成低至 1 天或 1 年的报告,我们的所有报告用户都必须选择特定的日期范围。

以下是该表的架构(虚拟)

Table Txn
-------------------------------------------------------------
  ID |  StartDate |   EndDate |  FK1 |  FK2 | FK3 |  Amount1 | Amount 2

当然还有其他桌子,但为了简单起见,我会离开。

目前我们没有使用任何外部工具/服务器来生成报告,而是由我们自己管理报告生成并在静态 HTML 页面中呈现。

我们注意到,对于查询 400 万行并过滤大约 10% 或数据需要 75 秒,我已经查看了查询,它只提取合并数据,因此改进查询可能在这里有很大帮助。

我的问题是像 SSRC 或其他工具仅有助于渲染部分吗?它们是否也有助于优化获取数据的方式?

【问题讨论】:

    标签: c# sql-server reporting-services


    【解决方案1】:

    支持 AJAX 的数据网格非常擅长提取大量数据。这个来自 DevExpress 的tool 在不到一秒的时间内检索了 300,000 行。我发现过滤可以在 1-2 秒内完成。

    SSRS 分页也会有所帮助,因为页面会更快地呈现。使用过滤器(不是查询参数),一旦检索到初始数据集,您应该具有良好的过滤性能。

    当然,您还想在主表中添加索引。运行跟踪并将跟踪保存到文件中,然后在数据库引擎优化顾问中使用该文件。这将有助于定义您需要哪些索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 1970-01-01
      • 2012-06-09
      相关资源
      最近更新 更多