.net 报告系统架构

.net 报告系统架构,.net,sql-server,reporting-services,.net,Sql Server,Reporting Services,我们已经在.NET3.5和SQLServer2008中构建了企业/LOB软件,例如,它可以管理订单、客户、库存等 我们做各种各样的报道,比如 传统报告(SQL查询) 仪表板(带有图表、列表等) 警报(例如,如果订单被取消,请向主管发送电子邮件) 现在,我们正在直接查询我们的操作数据库。我们有时会遇到性能问题,我想知道这是否可以通过优化查询数据库的方式或其他更复杂的方法来解决,例如使用SQL Report Server或在另一台服务器上复制数据库并进行查询 你们有什么建议吗?或者我能阅读的任何资源

我们已经在.NET3.5和SQLServer2008中构建了企业/LOB软件,例如,它可以管理订单、客户、库存等

我们做各种各样的报道,比如

  • 传统报告(SQL查询)
  • 仪表板(带有图表、列表等)
  • 警报(例如,如果订单被取消,请向主管发送电子邮件)
  • 现在,我们正在直接查询我们的操作数据库。我们有时会遇到性能问题,我想知道这是否可以通过优化查询数据库的方式或其他更复杂的方法来解决,例如使用SQL Report Server或在另一台服务器上复制数据库并进行查询

    你们有什么建议吗?或者我能阅读的任何资源

    非常感谢你的帮助


    谢谢。

    首先,使用Reporting Services对您没有多大帮助,因为您最终会对同一个数据库执行相同的查询,只有呈现引擎会发生变化,但通过报表它可能会有所帮助。这是否能解决您的问题取决于您的负载和问题所在(效率低下的查询仍然会很慢)

    优化查询是我第一次尝试,因为这不会有任何伤害,而且只能是一个很好的练习


    如果这是不够的,我会考虑一个只读数据库副本来报告,或者建立一个OLAP立方体,如果您的报告可以受益于数据仓库方法。要使这最后一个工作正常,您必须安装Analysis Services

    SSRS实际上可以提供帮助,因为它内置了对缓存结果和报告的支持。请参阅。

    好的观点。虽然这并不意味着查询不应该被优化。谢谢你,文科,提供的信息。请您评论一下只读副本和OLAP多维数据集的区别好吗?每种方法的好处和坏处是什么?在哪种情况下,您会使用每种方法?只读副本对于事务性报告非常有用,因为在事务性报告中,数据不断变化,不需要进行任何转换即可发挥作用(这就是说,它很有用)。另一方面,OLAP对于获取数据的不同视图(转换)非常有用,在这些视图中,事务性数据必须在代码(或SQL)中进行大量处理才能发挥作用,或者需要为所用数据添加更多维度(时间是典型的例子。)请在此处阅读有关OLAP的更多信息: