0

サーバー側でkbmMWUNIDACConnectionPoolプロパティを次のように設定しました。

kbmMWUNIDACConnectionPool1.EnableCache := True;
kbmMWUNIDACConnectionPool1.MaxCacheAge := 30;
kbmMWUNIDACConnectionPool1.MaxCacheEntries := 100;
kbmMWUNIDACConnectionPool1.MaxCacheRecordCount := 10000;

しかし、キャッシュ機能が効果的ではないことがわかりました。UnidacMonitorのスクリーンショットをご覧ください。

ここに画像の説明を入力してください

これは同じクエリステートメントですが、サーバー側は毎回データベースに問い合わせます!なぜですか?一言で言えば:キャッシュ機能を正しく使用する方法は?前もって感謝します!:)

4

1 に答える 1

4

クエリステートメントをキャッシュする必要があること (xxxquery コンポーネントの Cached プロパティ) と、キャッシュする方法 (同じコンポーネントの CacheFlags) を有効にする必要があります。

CacheFlags は

  • mwcfDontAge - キャッシュ エントリは期限切れにならず、キャッシュに残ります
  • mwcfDontGarbageCollect - キャッシュ エントリがガベージ コレクションされることはありません (効果は dont age に似ています)
  • mwcfDefsOnly - クエリの定義 (フィールド定義とパラメーター定義) のみがキャッシュされます。
  • mwcfUpdateOnResolve - 解決された場合、キャッシュ エントリは新しいデータとフィールド/パラメータ定義で更新されます。
  • mwcfLeaveOnResolve - 解決された場合、キャッシュ エントリは削除されます。
  • mwcfNoParamsInCacheID - パラメータの内容をキャッシュ ID の一部として保存しないでください (したがって、異なるパラメータ値は同じキャッシュ エントリになります)
  • mwcfIgnoreCachedParams - 使用されていません。
于 2012-04-25T13:45:09.623 に答える