2016-10-04 96 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 –