2012-03-01 6 views
0

私たちはMemcacheでNHibernateを第2レベルのキャッシュとして使用しています。場合によっては、より高度なクエリや一括クエリ操作が必要になることがあります。NHibernate、キャッシング、およびカスタムSQLクエリ

"ORMは大量更新(または大量削除)操作には適していないと私たちは考えています。 のようなユースケースがある場合は、別の戦略はほぼ常に良いです:データベースに格納された プロシージャを呼び出すか、直接のSQL UPDATEとDELETEステートメントを使用して、その 特定のユースケースを使用してください。

懸念されているのは、基になるデータベースに対するクエリが(少なくともキャッシュの有効期限まで)キャッシュに反映されていないことと、誰かがNHibernateをカスタムSQL文とミックスして一致させるための効果的な戦略を考え出したのだろうか?

第2レベルのキャッシュに反映させるためにバルクのUpdateステートメント(カスタムSQLで実行)を言う方法はありますか?私は手動で退去することができることを認識していますが、これはキャッシュから項目を削除し、その結果データベースのヒット率が上昇します。

コミュニティには、この問題に効果的であると判明した解決策がありますか?

+5

コミュニティでも受け入れられた回答に感謝しています.... – Jaguar

答えて

関連する問題