0

データベース呼び出しのプロファイリングを行っていますが、リクエストごとに多くのデータベース呼び出しがあることに気付きました。個人データ (DTO) をセッションまたはキャッシュに格納することで、データベース呼び出しを減らすことができると思います。

NHibernate を使用していますが、問題は、人物の単一のプロパティが必要になるたびに、人物の完全なオブジェクト グラフが読み込まれることです。したがって、すべてのリクエストが人物オブジェクトをロードする必要がないように、完全なオブジェクトグラフを一度ロードしてからメモリのどこかに保存する方法があるかどうか疑問に思っていました。

これを達成するためのアーキテクチャ上のベストプラクティスはありますか? または、彼のような状況に対処するための他のベストプラクティスはありますか?

4

1 に答える 1

0

NHibernate は、同じ SessionFactory (静的である必要があります) から作成されたすべての ISession オブジェクトに対して有効な L2 キャッシュを提供します。InMemory プロバイダー、または AppFabric、SqlServer、Redis などの外部プロバイダーを使用できます。

NHibernate の構成を変更するだけでよいため、これが最も簡単な解決策になると思います。

いくつかの開始リファレンス - > http://www.sharpcoder.co.uk/post/2012/01/04/NHibernateCachesAppFabric.aspx

于 2012-08-30T11:40:07.143 に答える