报告系统架构以获得更好的性能

时间:2010-03-30 16:35:40

标签: performance architecture reporting sql-server-express

我们有一个运行Sql Server Express 2005并主要使用ASP.NET的产品。该数据库有大约200个表,其中一些(4或5)可以每天从300行增加到5000行并保持5年的历史,因此它们可以增长到1000万行。 我们构建了一个报告平台,允许客户根据模板,字段和过滤器构建报告 我们几乎从一开始就面临性能问题,我们尝试将报告显示在10秒以内,但其中一些最长可达25秒(特别是那些历史悠久的客户)。
我们不断检查索引并尝试改进查询,但我们感觉我们只能做很多事情。当然,动态生成查询的事实对优化没有帮助。我们还添加了一些保留冗余数据的表,但是我们还有更新的问题,即保持这些数据是最新的,并且Sql Express也限制了数据库的大小。
我们现在面临的一个问题是,我们必须决定是否要放弃实时报告,或者切断历史记录以便能够获得更好的表现。
我想问一下这种系统的推荐方法是什么 另外,我们应该开始寻找第三方工具/平台吗?我知道OLAP可以是一个选项,但是我们可以让它在Sql Server Express上运行,或者至少使用足够便宜的许可证来分发到数千个部署吗?

由于

2 个答案:

答案 0 :(得分:0)

  

我们几乎面临性能问题   从一开始

你的桌子变大之前?这使我认为您在报表应用程序或SQL查询中存在潜在问题。这些等待时间是否仅在系统上只有一个用户发生?

您是否使用SQL跟踪来记录长时间运行的查询并修复它们? 你是如何添加索引的?

有开源OLAP套件 - http://www.pentaho.com/index.php 但我不能保证其易用性或性能。

答案 1 :(得分:0)

通过维护数据库的非规范化版本,可以改善这种情况下的查询执行。 SQL Express并没有提供太多“开箱即用”的方式,因此您最好的选择(在SQL Express的限制范围内)是手动设计解决方案。

这意味着设计数据库的非规范化版本,您可以将数据导出到报告中。请注意,非规范化数据库会占用更多空间。 Here是一本涉及设计数据仓库的书。

您还应该研究将数据集中在功能齐全的RDBMS中的架构选项。

相关问题