2016-10-04 55 views
1

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

我的感觉是,.net MemoryCache不适合,因为结果集和大小的数量会不断增加。

我打算将它缓存在MongoDb中。有没有其他解决方案,你建议?

谢谢

+1

[Redis](http://redis.io/)呢? –

+0

为什么不直接向UI请求提供查询? – Paparazzi

+0

你是否真的打算为UI请求提供数百万条记录?可能不会,在这种情况下,您可能会考虑使用专门为此目的而设计的Oracle物化视图。 – mustaccio

回答

1

你的问题说:“每一个结果集将有百万条记录”

在这种情况下, 缓存服务器是不是一个好主意。即使分布式缓存可能会导致性能问题。

  • 在需要时
  • 获取和成绩表

返回结果如果您不能插入在Oracle中创建专用物理表来存储你的结果

  • 负载&刷新结果表/从Oracle数据库中删除记录,您可能需要使用专用的应用程序数据库。

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

  • +0

    实际上,不需要将完整的结果集返回给UI。结果集将被过滤为UI请求。 – Bala

    1

    Redis是一个很好的解决方案。退房http://redis.io/

    +0

    为什么downvote?他要求另一个解决方案mongoDb –