C#在哪里缓存大数据表

C#在哪里缓存大数据表,c#,.net,angularjs,oracle,asp.net-web-api,C#,.net,Angularjs,Oracle,Asp.net Web Api,我必须执行一个长时间运行的PL/SQL查询,并且需要将结果集存储在某个地方,并服务于UI请求。一段时间后,需要自动/手动刷新。 需要以相同的方式处理多个结果集。每个结果集都将有数百万条记录。 我的项目使用AngularJS和Web API。 我将ADO.net用于Oracle客户端,而不是实体框架 我觉得,.net MemoryCache不适合,因为结果集的数量和大小将继续增长 我计划将其缓存在MongoDb中。你还有其他的解决办法吗 谢谢Redis是一个很好的解决方案。查看您的问题说“每个结果

我必须执行一个长时间运行的PL/SQL查询,并且需要将结果集存储在某个地方,并服务于UI请求。一段时间后,需要自动/手动刷新。 需要以相同的方式处理多个结果集。每个结果集都将有数百万条记录。 我的项目使用AngularJS和Web API。 我将ADO.net用于Oracle客户端,而不是实体框架

我觉得,.net MemoryCache不适合,因为结果集的数量和大小将继续增长

我计划将其缓存在MongoDb中。你还有其他的解决办法吗


谢谢

Redis是一个很好的解决方案。查看您的问题说“每个结果集都将有数百万条记录”

在这方面, 在服务器中缓存不是一个好主意。即使是分布式缓存也可能导致性能问题

  • 在oracle中创建专用的物理表以存储结果
  • 在需要时加载并刷新结果表
  • 从结果表中获取并返回结果
如果无法从oracle数据库中插入/删除记录,则可能需要使用专用的应用程序数据库


即使您从web API返回数百万条或记录,angular应用程序也应该处理您的所有数据。这可能会导致长时间运行的JavaScript和客户端性能

那怎么办?为什么不直接向UI请求提供查询呢?你真的打算向UI请求提供数百万条记录吗?可能不会,在这种情况下,您可能会考虑使用Oracle具体化视图,这些视图是专门为这个目的而设计的。实际上,不需要将完整的结果集返回到UI。将为UI请求筛选结果集。为什么要进行向下投票?他要求为mongoDb提供另一种解决方案