2012-04-25 3 views
0

Я установить свойства kbmMWUNIDACConnectionPool как это на стороне сервера:Как использовать функции кеша KbmMW?

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

Но, я считаю, функции кэш-памяти не эффективно, пожалуйста, смотрите скриншот UniDAC Monitor:

enter image description here

Это тот же запрос, но серверная сторона запрашивает базу данных каждый раз! Почему? Одним словом: как правильно использовать функции кеша? Спасибо заранее! :)

ответ

4

Вам необходимо включить, чтобы запрос был кэширован (свойство кэширования компонента xxxquery) и как он должен быть кэширован (CacheFlags на одном компоненте).

CacheFlags может быть

  • mwcfDontAge - запись кэша не истекает, и будет оставаться в кэше
  • mwcfDontGarbageCollect - Запись кэша никогда не будет мусора (эффект аналогичен DonT возраста)
  • mwcfDefsOnly - кэшируется только определение для запроса (определение полей и параметров).
  • mwcfUpdateOnResolve - если разрешено, запись в кэш будет обновляться новыми данными и полем/paramdefs.
  • mwcfLeaveOnResolve - если разрешено, запись в кэш будет удалена.
  • mwcfNoParamsInCacheID - Содержание параметров магазина Не как часть кэша-ID (следовательно, различные parametervalues ​​приводят к одной и той же записи кэша)
  • mwcfIgnoreCachedParams - Нет в использовании.
+0

Спасибо! @KimMadsen, должен ли я устанавливать компонент клиентской стороны на любые свойства одновременно? –

+0

Следуйте своим рекомендациям. На стороне клиента нет проблем! Благодаря! Но серверная сторона все равно не имеет никакого эффекта :( –

+0

У вас на серверах одинаковые параметры. У клиента есть пул подключений к серверу приложений. Он может кэшировать эти значения. Тот же сервер приложений имеет к Если вы включите кеш на них, установите соответствующие свойства кеширования и определите на компонентах запроса (клиент и сервер), что они должны работать в кешированном состоянии, это сделает это. Не забудьте что-то кешировать, сначала нужно будет выполнить полную операцию . Кэширование может получить только более поздние запросы. –

Смежные вопросы