0

我在服务器端设置了 kbmmWUNIDACConnectionPool 属性:

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

但是,我发现缓存功能并不有效,请看 Unidac Monitor 截图:

在此处输入图像描述

是同一个查询语句,但是服务端每次都询问数据库!为什么?一句话:如何正确使用缓存功能?提前致谢!:)

4

1 回答 1

4

您需要启用查询语句应该被缓存(xxxquery 组件的 Cached 属性)以及它应该如何被缓存(同一组件上的 CacheFlags)。

CacheFlags 可以是

  • mwcfDontAge - 缓存条目不会过期并将保留在缓存中
  • mwcfDontGarbageCollect - 缓存条目永远不会被垃圾回收(效果类似于 dont age)
  • mwcfDefsOnly - 只缓存查询的定义(字段定义和参数定义)。
  • mwcfUpdateOnResolve - 如果已解决,缓存条目将使用新数据和字段/参数定义进行更新。
  • mwcfLeaveOnResolve - 如果已解决,缓存条目将被删除。
  • mwcfNoParamsInCacheID - 不要将参数内容存储为缓存 ID 的一部分(因此不同的参数值会导致相同的缓存条目)
  • mwcfIgnoreCachedParams - 未使用。
于 2012-04-25T13:45:09.623 回答