2

NHibernate L2キャッシングについて読むほど、次のシナリオでのみ主に恩恵を受けるように思われます。

  • あなたは主にIDでクエリを行っています、そして...
  • 主に静的データをクエリしている、および/または
  • 同一のクエリが頻繁に実行されることを期待します(クエリキャッシュには返されたIDのセットのみが格納されるため、基本的にIdによるクエリに戻ります)。

私はこの理解が間違っていますか?もしそうなら、他にどのような状況でパフォーマンスが大幅に向上する可能性がありますか?

4

1 に答える 1

1

あなたの質問は、NHibernateの第2レベルのキャッシュよりもキャッシュパターンに関連しているようです。キャッシュ(コンピューティング)を参照してください。

...キャッシュは、データを透過的に保存するコンポーネントであり、そのデータに対する将来のリクエストをより迅速に処理できるようにします...

以上です。アプリケーションがパフォーマンスを重視する操作を実行している場合、第2レベルのキャッシュは、それらをはるかに高速に提供するのに役立ちます。

NHibernateは、パラメーターの完全なセット(ページング、順序付け、フィルターなど)によってクエリをキャッシュしているため、単純なシナリオでも、ホームページまたはスタートページにすべての記事、従業員、タスクのリストを提供します。すべてのユーザー...時間とリソースを節約できます。

基になるデータに変更があるときはいつでも、キャッシュはクリアされ(クリアされる可能性があります)、新しいデータがリロードされます。

また、非常にスマートなキャッシュプロバイダーがあるため、WebファームでもNHibernateとキャッシュを使用できます。これはあなたが通過すべき最初の読み物です:NHibernateの第1レベルと第2レベルのキャッシング

SO:IDまたは静的データによる取得だけではありません。第2レベルのキャッシュは、トラフィックの多いトランザクションアプリケーションでもパフォーマンスを向上させることができます。非常に短い時間であっても、キャッシュ(memeoraなど)からデータを取得して、数ミリ秒節約できるためです...

于 2013-02-01T04:34:43.503 に答える