我们在一个SQL表中有数百万条记录,我们对这些数据运行非常复杂的分析以生成报告。
随着表格的增长和额外记录的增加,计算时间也在增加,用户必须等待很长时间才能加载网页。
我们正在考虑使用像AppFabric这样的分布式缓存,在应用程序加载时将数据加载到内存中,然后在内存中运行报告。这应该会稍微缩短响应时间,因为现在数据在内存中,而不是在磁盘中。
在我们开始并实现它之前,我想检查并找出其他人正在做什么,以及在内存中加载数据、缓存等的一些最佳技术和实践。当然,您不能在内存中加载上亿条记录的整个表...??
我还在研究OLAP /数据仓库,它可能比缓存提供更好的性能。
发布于 2010-08-10 11:47:48
复杂报表的解决方案是预先计算,所以如果您正在查看OLAP,那么您就走在了正确的道路上。
发布于 2011-05-05 02:15:42
您是否考虑过对数据库进行分区?我们为我们最大的数据库这样做。
话虽如此,正确使用应用程序fabric缓存将大大提高大多数IO密集型应用程序的性能。
发布于 2010-08-10 09:10:06
我们在
表中有上百万条记录,
糟糕的政策。平面文件更好。
,我们对这些数据进行非常复杂的分析,以生成报告。
在某些情况下,您会更乐于将相关子集加载到SQL中。
随着表的增长和更多记录的添加,计算时间也在增加
这就是使用数据库过多的后果。以更少的价格使用它。
我们正在考虑使用像AppFabric这样的分布式缓存...
也许吧。但是,平面文件比RDBMS更快且更具可伸缩性。
还在研究联机分析处理/数据仓库存储
很好的计划。马上买下金博尔的书。你不需要更多的技术。您只需要更好地使用平面文件作为主要文件,并将SQL用作用户的即席查询(针对子集)的位置。
https://stackoverflow.com/questions/3445304
复制相似问题