Правильный подход к настройке свободного системного кэша nhibernate с одной таблицей и четырьмя запросами? - PullRequest
1 голос
/ 05 ноября 2010

Мой сценарий довольно прост, у меня есть 1 таблица с примерно 20 продуктами, которые я хотел бы добавить в кэш 2-го уровня (SysCache), используя Fluent NHibernate. Я запрашиваю эту таблицу четырьмя различными способами, поэтому я решил, что время от времени все это помещаю в кеш и уменьшаю количество обращений к базе данных.

Мои 4 запроса:

  1. Все (начало, макс.) Для подкачки
  2. ByDate (дата) для получения продуктов до или после определенной даты
  3. ById (ID)
  4. Byname (имя)

Я включил SysCache в свободной конфигурации, используя приведенный ниже код, и добавил соответствующую конфигурацию в web.config.

MsSqlConfiguration.MsSql2008.Cache(c => c.ProviderClass<SysCacheProvider>()
                                         .UseQueryCache())

Я добавил следующий код в ProductMap

Cache.ReadWrite().Region("testregion");

Теперь, как мне продолжить отсюда? Должен ли я добавить SetCachable (true) ко всем моим 4 запросам? Это правильный подход?

Часть меня считает, что должен быть способ кешировать запрос All (), а затем указать 4 вышеупомянутых запроса, чтобы использовать кешированный All () для запроса. Возможно, мои предположения совершенно неверны, и каждый запрос нужно добавлять в кеш отдельно, используя SetCachable (true) на уровне запроса.

Каков правильный подход к настройке кэша для этого случая?

Спасибо

1 Ответ

0 голосов
/ 05 ноября 2010

Кеширование запросов включается индивидуально.Нет встроенных ярлыков.

Конечно, вы можете добавить метод расширения или использовать базовый класс, который делает это, но это действительно не стоит: оптовое кэширование редко повышает производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...