我们在SQL表中有数百万条记录,我们对该数据运行非常复杂的分析以生成报告。
随着表格的增长和其他记录的增加,计算时间也在增加,用户必须等待很长时间才能加载网页。
我们考虑使用像AppFabric这样的分布式缓存在应用程序加载时将数据加载到内存中,然后在内存中运行我们的报告。这应该会稍微改善响应时间,因为现在数据在内存与磁盘之间。
在我们采取措施并实现这一点之前,我想检查并了解其他人正在做什么,以及在内存中加载数据,缓存等的一些最佳技术和实践。当然,您不仅要加载整个在内存中有数百万条记录的表... ??
我也在研究OLAP /数据仓库,这可能会给我们带来更好的性能而不是缓存。
答案 0 :(得分:3)
复杂报告的解决方案是预先计算,因此如果您正在查看OLAP,那么您就走在了正确的道路上。
答案 1 :(得分:0)
您是否考虑过对数据库进行分区?我们为最大的数据库执行此操作。
话虽如此,正确使用app fabric cache会大大提高IO大多数应用程序的性能。
答案 2 :(得分:-3)
我们在SQL表中有数百万条记录,
糟糕的政策。平面文件更好。
我们对该数据运行非常复杂的分析以生成报告。
在某些情况下,您可以更乐意将相关子集加载到SQL中。
随着表的增长和添加额外的记录,计算时间也在增加
这是使用数据库太多的结果。少用它。
我们考虑使用像AppFabric这样的分布式缓存...
也许。但是,平面文件比RDBMS更快,更具可扩展性。
还在调查OLAP /数据仓库
好计划。立即购买Kimball的书。您不需要更多技术。您只需要更好地使用平面文件作为主文件,并将SQL作为用户的即席查询(针对子集)的地方。