アプリケーションの頻繁に使用されるデータをキャッシュすることは、非常に有能な方法です。 ただし、キャッシュされたデータがOracleデータベースと同期していることを確認することがジレンマです。 これを克服する秘訣は、アイテムのTTL(Time To Live)を推測し、それをキャッシュするデータの有効期限を使用することです。

このスキームがどれほど人気が​​あるとしても、これは、そのアイテムがデータベース内で変更されないままになる期間についての単なる知識に基づいた推測のままです。 そして、推測は常に正確であるとは限りません。 アプリケーションがデータセンシティブであり、不正確なデータのフェッチと処理がその目的に反する場合、有効期限を使用するとかなりのコストがかかります。

この窮状からあなたを救うのは、次のようなキャッシュでデータベース同期メカニズムを使用することです。 NCache、Oracleデータベースで更新された場合、対応するキャッシュデータを自動的に削除します。

NCache 詳細                 データベースへのキャッシュの依存関係               データの有効期限のテクニック

 

使い方 NCache OracleServerと同期する

Oracle Dependencyは、データベース内のデータセットが変更されたときにすべてのデータベース・クライアントに通知するイベント通知を使用します。 バックエンド情報: NCache この機能を使用して、自身をOracleServerのクライアントとして登録します。 これは、Oracleデータセットでデータが変更されるたびに、 NCache 自動的に通知されます。 この情報を使用して、 NCache キャッシュされたすべてのアイテムとそれに対応するデータセットのマップを保持します。 だから、いつでも NCache 変更が通知されると、対応するキャッシュアイテムがキャッシュから無効になり、次にクライアントアプリが要求したときに、更新されたアイテムがフェッチされます。

同期-ncache-オラクル

図:同期 NCache OracleServerを使用

同期しましょう NCache OracleServerを使用

eコマースアプリケーションの簡単な例を取り上げます(.NET Core ベース)その全体の成功はその正確さにあります。 何千ものクライアントが毎分オンラインショッピングのためにこのアプリケーションにアクセスするため、このアプリケーションのデータはキャッシュされています。

ここで、非常に一般的なシナリオを考えてみましょう。 顧客A ストアが持っていた最後のXboxシリーズXを購入しました。 アプリサーバーはそのアイテムの量をデータベースから削除しますが、キャッシュはまだこの変更を認識していません。 この不一致は、顧客の怒りにつながります 顧客B 同じ製品が好きで、支払いを行い、支払い成功のメッセージで通知を受け取りますが、最新のXboxSeriesXを受け取りません。

ここで、メインのOracleデータベースでデータが変更されるたびにアプリケーションがデータの整合性の問題に直面しないようにするために、 NCache のサポートを提供します Oracleの依存関係.

この依存関係機能を使用するには、 NCache Oracleクエリをパラメータ化できます OracleCacheDependency 実行時にパラメータ値を受け取るメソッド。 これを行うと、Oracle Serverでクエリをコンパイルする必要がある回数が減り、アプリケーションのパフォーマンスがXNUMX分のXNUMXに向上します。

NCache 詳細                 Oracleへのキャッシュの依存関係                     Oracle環境のセットアップ

 

OracleCacheDependencyでできることは他にもたくさんあります。 これは、このOracleDependencyでサポートされているいくつかの非常に便利な機能のリストです。

リードスループロバイダーを介したキャッシュアイテムの自動リロード

OracleCacheDependencyは、データソースで変更されたキャッシュアイテムを無効にする責任があります。 NCache は、大阪で バッキングソースプロバイダーを読み通す キャッシュを無効にするだけでなく、変更されたアイテムの最新バージョンをOracleサーバーからフェッチする場合に備えて。 と 読み飛ばし オプションが有効、 NCache その リードスルー OracleServerがキャッシュに変更を通知するたびに更新されたデータをフェッチするプロバイダー。

次のコードは、この機能を実現する方法を説明しています。

NCache 詳細                 Oracleへのキャッシュの依存関係                     リードスループロバイダー

 

ストアドプロシージャベースのOracle依存関係

NCache サポート ストアドプロシージャベースのOracle依存関係 すべてのOracleクエリをOracleデータベース内に保持することが好みの場合。 これらのストアドプロシージャはOracleサーバーでプリコンパイルされており、動的なOracleクエリよりもはるかに高速に実行されます。

Oracleでストアドプロシージャを作成するには、次の例を参照してください。

.NETアプリケーションでこのストアドプロシージャを呼び出すのは簡単です。 例として次のスニペットを使用してください。

 

NCache 詳細                 Oracleへのキャッシュの依存関係                     ストアドプロシージャを使用したOracleの依存関係

同期する理由 NCache Oracle Serverを使用しますか?

古いデータを処理しているという理由だけで、彼らが一生懸命取り組んできたアプリケーションが失敗することを誰も望んでいません。 あなたはビジネスを失い、そのように直面します。 だが NCache、非常に簡単に、キャッシュをOracleデータベースと同期させて、代わりに失敗しないように使用しているキャッシュを保証するOracleDependencyを提供します。

NCache 詳細                                ダウンロード NCache                          エディションの比較