我正在处理我的第一份SSRS报告,但我无法找到有关如何创建报告的一般指导原则。具体来说,我想知道在报告中需要汇总数据时的一般方法是什么。例如,假设我需要在报告中显示以下内容:
煎饼--- 34
鸡蛋---------- 56
培根-------- 73
我还有几行像上面那样需要显示汇总数据。我正在按类型对整行进行分组,然后在每个单元格上显示如下计数:[Count(Status)]。
我的报告已经花了45多秒才能运行。通常最好在查询中像这样进行聚合吗?或者这取决于返回的数据量?任何指针都非常感谢。谢谢!
答案 0 :(得分:2)
与所有SQL答案一样:取决于。
但通常在SQL中进行聚合。 SQL Server比报表层执行聚合要好得多。同时减少行数将减少数据传输和SSRS需要处理的数据量。通常,您只希望在报表层进行聚合,如果存在其他约束导致无法在SQL查询中执行此操作,或者如果这样做将使报表在将来更难以维护。 (在可维护性的名义下牺牲一点性能肯定会有所说法。)一种情况是当你需要显示所有数据并返回两个数据集要么太复杂要么实际上减慢了报告的表现。
作为旁注,如果您的报告运行时间超过45秒,那么您的SQL可能没有得到很好的优化,或者您的报告正在进行大量复杂的计算。您可以在SQL服务器上放置的工作越多,性能就越好。 SQL Server用于处理数字和进行聚合,所以当然可以让它尽可能做到最好。
YMMV,所以总是对不同的方法进行性能测试,看看哪种方法效果最好。