私はここ数週間、asp.net Web API を使用して大きな成功を収めてきました。モバイル クライアントが http を介してプログラミングするためのインターフェイスを作成するのに本当に役立ちました。
助けが必要なところまで来ました。
データベースに接続でき、100K の結果を返すことができる新しいエンドポイントがあります。OData を使用してデータをフィルター処理し、ページ分割されたデータ セットを返します。
これは複数のリクエストで発生する可能性があるため、パフォーマンスに関心があります。毎回データベースから 100K レコードを返すのは理想的ではありません。だから私はいくつかのアイデアを持っています。
1 つ目は、100K の結果をキャッシュし、毎回 OData に魔法をかけてもらうことです。負荷分散環境として AppFabric 分散キャッシュを使用しています。ただし、このような量のデータを AppFabric にキャッシュすると、メモリが複雑になる可能性があるため、これを避けるのが最善だと思います。
次のオプションは、OData の魔法を忘れて、使用するフィルターをデータベースに送信し、毎回必要なデータのみを返すことです。つまり、毎回データベースにアクセスします。
この記事で概説されているバージョンのようなキャッシュ ハンドラーを使用して、http キャッシュにキャッシュすることを検討できます - > http://byterot.blogspot.ie/2012/06/aspnet-web-api-caching-handler.htmlこれは、データが別のシステムを介して更新された場合に、キャッシュされたデータが期限切れにならないことです。
このシナリオ、大量のデータ、web api と組み合わせて odata でフィルター処理する方法に関するその他のヒントはありますか?