Reporting services 在何处使用Microsoft Reporting Services进行聚合?

Reporting services 在何处使用Microsoft Reporting Services进行聚合?,reporting-services,ssrs-grouping,Reporting Services,Ssrs Grouping,我正在编写我的第一份SSRS报告,但我还没有找到关于如何创建报告的一般指导原则。具体而言,我想知道当报告需要汇总数据时,一般的方法是什么。例如,假设我需要在报告中显示以下内容: 煎饼--34 鸡蛋-------56 培根--------73 我还有几行像上面那样需要显示聚合数据的行。我目前正在按类型对整行进行分组,然后在每个单元格上显示一个计数,如下所示:[计数(状态)] 我的报告已经运行了45秒以上。在查询中这样进行聚合通常更可取吗?或者这取决于返回的数据量?非常感谢您的指点。谢谢 与所有SQ

我正在编写我的第一份SSRS报告,但我还没有找到关于如何创建报告的一般指导原则。具体而言,我想知道当报告需要汇总数据时,一般的方法是什么。例如,假设我需要在报告中显示以下内容:

煎饼--34
鸡蛋-------56
培根--------73

我还有几行像上面那样需要显示聚合数据的行。我目前正在按类型对整行进行分组,然后在每个单元格上显示一个计数,如下所示:[计数(状态)]

我的报告已经运行了45秒以上。在查询中这样进行聚合通常更可取吗?或者这取决于返回的数据量?非常感谢您的指点。谢谢

与所有SQL答案一样:这取决于具体情况

但通常使用SQL进行聚合。SQL server在执行聚合方面比报表层要好得多。另外,返回更少的行将减少数据传输和SSRS需要处理的数据量。通常,如果存在其他限制使得无法在SQL查询中进行聚合,或者这样做会使报表在将来更难维护,那么您只希望在报表层进行聚合。(为了可维护性的名义牺牲一点性能当然是有道理的。)一种情况是,当您需要显示所有数据并返回两个数据集时,要么太复杂,要么实际上会降低报告的性能

另外,如果您的报表运行时间超过45秒,那么您的SQL可能没有得到很好的优化,或者您的报表正在进行大量复杂的计算。在SQL server上做的工作越多,性能就会越好。SQL Server是专为处理数字和进行聚合而设计的,所以当您可以的时候,一定要让它做它最擅长的事情


YMMV,所以一定要对不同的方法进行性能测试,看看哪种方法最有效。

感谢您的富有洞察力的回答!