C# 数据缓存技术/技巧/AppFabric

C# 数据缓存技术/技巧/AppFabric,c#,caching,data-warehouse,appfabric,C#,Caching,Data Warehouse,Appfabric,我们在一个SQL表中有数百万条记录,我们对这些数据运行非常复杂的分析来生成报告 随着表的增长和其他记录的添加,计算时间也在增加,用户必须等待很长时间才能加载网页 我们考虑在应用程序加载时使用分布式缓存(如AppFabric)将数据加载到内存中,然后使用内存中的数据运行报告。这将稍微缩短响应时间,因为现在数据在内存中而不是磁盘中 在我们使用plundge并实现此功能之前,我想检查并了解其他人在做什么,以及在内存中加载数据、缓存等的一些最佳技术和实践。当然,您不只是在内存中加载整个表,其中包含100

我们在一个SQL表中有数百万条记录,我们对这些数据运行非常复杂的分析来生成报告

随着表的增长和其他记录的添加,计算时间也在增加,用户必须等待很长时间才能加载网页

我们考虑在应用程序加载时使用分布式缓存(如AppFabric)将数据加载到内存中,然后使用内存中的数据运行报告。这将稍微缩短响应时间,因为现在数据在内存中而不是磁盘中

在我们使用plundge并实现此功能之前,我想检查并了解其他人在做什么,以及在内存中加载数据、缓存等的一些最佳技术和实践。当然,您不只是在内存中加载整个表,其中包含100万条记录

我还研究了OLAP/数据仓库,它可能会给我们带来比缓存更好的性能

SQL表中有数百万条记录

糟糕的政策。平面文件更好

我们对这些数据进行非常复杂的分析以生成报告

在某些情况下,您会更乐意将相关子集加载到SQL中

随着表的增长和其他记录的添加,计算时间也在增加

这是过度使用数据库的结果。少用它

我们正在考虑使用像AppFabric这样的分布式缓存

也许吧。但是,平面文件比RDBMS更快、更具可扩展性

他也在研究OLAP/数据仓库


好计划。立即购买金宝的书。你不需要更多的技术。您只需更好地将平面文件用作主文件,并将SQL用作用户进行特别查询(针对子集)的地方。

复杂报告的解决方案是预计算,因此如果您正在研究OLAP,您的选择是正确的。

您考虑过对数据库进行分区吗?我们这样做是为了我们最大的数据库


话虽如此,正确使用app fabric cache将大大提高大多数IO密集型应用程序的性能。

我觉得“糟糕的策略。平面文件更好。”这句话有点笼统。你能帮我吗?在一个RDBMS表中看到1亿行并使其性能良好是很常见的:索引、分区、索引视图浮现在脑海中…@Mitch-Wheat。平面文件比任何RDBMS都简单(因此速度更快)。如果只是简单地积累数据,然后进行分析,那么平面文件最适合这样做。请买金宝的书。DW最简单的方法是使用大容量的平面文件和用于特殊查询的SQL。@S.Lott:你能告诉我Kimball在哪里说平面文件总是更快吗。Thx.@Mitch-Wheat:Kimball建议“维度总线”应该是平面文件。对于简单的追加和检索操作,平面文件比RDBMS更快,因为它们更简单。与RDBMS Insert/Select相比,对文件系统读写进行一些测量。RDBMS==文件系统+用于锁定的开销。在切片和切割时,平面文件肯定不会更好。e、 g.当您的查询只需要聚合行的子集时。随着所需的不同切片数量的增加,平面文件的吸引力降低。此外,他们还缺乏良好的工具来确保数据的一致性、可用性等。仅使用索引的方法无法解决我们的问题,我们已经为查询定义了索引并进行了微调。