2016-10-04 5 views
1

長時間実行するPL/SQLクエリを実行する必要があり、結果セットをどこかに格納してUI要求に処理する必要があります。一定時間後に自動的に/手動でリフレッシュする必要があります。 複数の結果セットが同じ方法で処理される必要があります。各結果セットには、何百万ものレコードが含まれます。 私のプロジェクトはWeb APIでAngularJSを使用しています。 エンティティ・フレームワークではなく、Oracle ClientでADO.netを使用しています。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

    レディスは良い解決策です。 http://redis.io/

    +0

    なぜdownvote?彼はmongoDbの別の解決策を尋ねた –

    関連する問題