2010-01-13 122 views
0

我们已经建立了企业/ LOB软件,例如,管理订单,客户,库存等在.net 3.5和SQL Server 2008报告系统架构

我们做各种报告,如

  1. 传统报告(SQL查询)
  2. 仪表板(使用图表,列表等)
  3. 警报(例如,如果一个订单被取消,通过电子邮件发送导师)

现在,我们直接查询我们的操作数据库。我们有时会遇到性能问题,我想知道这是否可以通过优化查询数据库的方式或更多涉及的方式来解决,例如使用SQL Report Server或在另一台服务器上复制数据库并查询。

请问你们有什么建议吗?或者我可以阅读的任何资源?

非常感谢您的帮助。

谢谢。

回答

2

首先使用Reporting Services不会对你有太大的帮助,因为你最终会对相同的数据库执行相同的查询,只有渲染引擎会改变,但它可以通过caching报告。这是否能够解决您的问题取决于您的负载和问题的位置(效率低下的查询仍然会很慢)。

优化查询是我尝试的第一步,因为它从来不会伤害,只能是一个很好的练习。

如果这还不够,我会考虑用于报告的只读数据库副本,或者如果您的报告可以从数据仓库方法中受益,则可以构建OLAP多维数据集。为了最后这个工作,你必须安装Analysis Services。

+0

谢谢你,温科,信息。您能否对只读副本与OLAP多维数据集发表评论?每种方法的好处和坏处是什么?你会在哪种情况下使用每种方法? – user191898 2010-01-13 09:00:26

+0

只读副本对于事务性报告非常有用,其中数据不断变化,不需要转换就可以有用(即它是有用的)。另一方面,OLAP对于获取数据的不同视图(转换)以及事务数据必须在代码(或SQL)中进行很多处理才有用,或者需要将更多维添加到使用的数据(时间就是规范的例子)。在这里阅读关于OLAP的更多信息:http://wikipedia.org/wiki/OLAP – 2010-01-13 09:23:57

0

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

+0

好点。尽管这并不意味着查询不应该被优化。 – 2010-01-13 06:52:02

+0

绝对同意。 – 2010-01-13 07:11:52