• Facebook
  • Twitter
  • Youtube
  • 裏地付き
  • RSS
  • ドキュメント
  • 比較
  • ブログ
  • ダウンロード
  • お問い合わせ
ダウンロード
目次を表示/非表示

NHibernateキャッシュを照会する

NHibernateにはクエリキャッシュ機能も備わっています。クエリキャッシュを有効にすると、NHibernateがデータベースに対して行ったクエリと、そのクエリ結果セットがNHibernateキャッシュにキャッシュされます。クエリキャッシュはセカンドレベルキャッシュを利用してクエリを保存するため、同じクエリが再度実行される際には、キャッシュからクエリを取得できます。

クエリの結果として取得されたオブジェクトは、NHibernate Cache のそれぞれの領域にキャッシュされるため、クエリ キャッシュを効率的に使用するには、オブジェクトをキャッシュ可能としてマークする必要があります。ただし、クエリと結果セットの主キーは、デフォルトのクエリ領域に格納されます。 NHibernate.Cache.StandardQueryCache`NHibernate.Cache.StandardQueryCache はキャッシュされたクエリ結果セットを格納し、UpdateTimestampsCache はクエリ可能なテーブルへの最新の更新のタイムスタンプを格納し、キャッシュされたクエリ結果がまだ有効かどうかを判断するために使用されます。

お願い

すべてのクエリの結果が一定期間同じままであるわけではありません。したがって、クエリ キャッシュは、結果があまり頻繁に変更されない可能性のあるクエリでのみ使用する必要があります。

NHibernate Cacheでクエリキャッシュを有効にする方法

キャッシュ可能なクエリが実行されると、NHibernate はデータベースにクエリを実行する代わりに、有効なキャッシュ結果を返すことができます。有効なキャッシュ結果が存在しない場合は、クエリがデータベースに対して実行され、その結果がキャッシュされます。

クエリキャッシュを有効にするには、NHibernate設定セクションのsession-factoryタグに次のプロパティを追加します。

<property name="cache.use_query_cache">true</property>

クエリ キャッシュを有効にしても、デフォルトでは各クエリはキャッシュされません。代わりに、キャッシュする必要があるクエリはコード内でキャッシュ可能に設定されます。クエリをキャッシュ可能に設定するには、次の呼び出しを行います。 SetCacheable(true) クエリを作成する際のメソッド、例:

IQuery qry = session.CreateQuery("from Customer c").SetCacheable(true);

NHibernate は、クエリ、セッション状態のフラッシュ、キャッシュされたデータの削除などの操作に対して非同期 API を提供します。 NCache セカンドレベルキャッシュとして使用されます。

NHibernate Cache で非同期操作を使用する

非同期呼び出しの使用 FlushAsync (NAIST) と EvictAsync スレッドプールのリソース枯渇を防ぎ、高並行環境下でもアプリケーションの応答性を向上させます。

以下の例は、非同期操作の使用例を示しています。 NCache NHibernate の 2 次キャッシュとして。

  • ListAsyncクエリ結果を非同期的に取得し、キャッシュ可能なクエリ結果を構成済みのクエリキャッシュに保存できるようにします。
customers = qry.ListAsync().Result;
  • FlushAsync 基になる永続ストアを、メモリに保持されている状態と非同期に同期します。
session.Save(customers);
session.FlushAsync();
  • EvictAsync 顧客オブジェクトを非同期的に削除します。
ISessionFactory factory;

// Removes a single customer with the provided attribute asynchronously
factory.EvictAsync(typeof(Customer), CustomerID);

// OR

// Removes all customers asynchronously
factory.EvictAsync(typeof(Customer));

NHibernateでの同期操作の使用

同期操作は、即時の連続処理を必要とするレガシーアプリケーションに簡単に実装できます。以下の例は、同期操作の使用方法を示しています。 NCache NHibernate の 2 次キャッシュとして。

  • List データベースからのデータの取得を実行し、結果をにキャッシュします NCache 同期的に。
customers = qry.List().Result;
  • Flush 基になる永続ストアをメモリに保持されている状態と同期します。
session.Save(customers);
session.Flush();
  • Evict 顧客オブジェクトを同期的に削除します。
ISessionFactory factory;

// Removes a single customer with the provided attribute synchronously
factory.Evict(typeof(Customer), CustomerID);

// OR

// Removes all customers synchronously
factory.Evict(typeof(Customer));

も参照してください

使い方 NCache NHibernate 2次キャッシュとして
NHibernateを使用したデータベース同期の構成
EntityFrameworkキャッシュプロバイダー

お問い合わせ

電話

+1 214-619-2601   (米国)

+44 20 7993 8327   (英国)

 
Eメール

sales@alachisoft.com

support@alachisoft.com

NCache
  • エディションの比較
  • NCache アーキテクチャ
  • ベンチマーク
ダウンロード
価格
遊び場を試してみる

デプロイメント
  • クラウド (SaaS & ソフトウェア)
  • オンプレミス
  • Kubernetes
  • デッカー
技術的なユースケース
  • ASP.NETセッション
  • ASP.NET Core セッション
  • Pub / Subメッセージング
  • リアルタイムASP.NET SignalR
  • インターネットのもの(IoT)
  • NoSQLデータベース
  • ストリーム処理
  • Microservices
資料
  • 雑誌の記事
  • サードパーティの記事
  • 記事
  • 動画
  • ホワイトペーパー
  • 作品
  • トーク
  • ブログ
  • ドキュメント
顧客のケーススタディ
  • お客様の声
  • Customers
サポート
  • デモを予約
  • フォーラム(Googleグループ)
  • ヒント
会社
  • リーダーシップ
  • Partners
  • ニュース
  • イベント
  • Careers
お問い合わせ

  • 英語中国語(簡体字)仏語ドイツ語イタリア語日本語韓国語ポルトガル語スペイン語

  • お問い合わせ
  •  
  • サイトマップ
  •  
  • 利用規約
  •  
  • プライバシーポリシー
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。
トップに戻る