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