от
У нас есть рельсы 4.2 приложения, работающие на серверной СУБД Oracle, с memcached/Далли в качестве хранилища кэша. QueryCache, кажется, не работает для повторяющихся SQL в одной и той же просьбой. Согласно документации: Кэширование запросов-это функция рельсы, что схрон возвращаемый результирующий набор на каждый запрос. Если рельсы вновь встречает один и тот же запрос для этого запрос, он будет использовать кэшированный набор результатов в отличие от запуска запрос к базе данных еще раз. Конфигурации в приложения/производство.РБ устанавливает кэш магазина к Далли, и переключает query_cache true в производстве:
application.rb: config.cache_store  = :dalli_store, 'localhost:11211', { namespace: 'BASE', down_retry_delay: 120 }

environments/production.rb:  config.action_controller.perform_caching = true
Выполнение memcached в подробном режиме, я вижу все выбирает и телеаппаратуры и скучает от прямого низкий уровень кэширования (т. е. рельсы.кэш.набор), но никаких доказательств кэширование запросов. (Хотя я не уверен на 100%, если кэш запросов должны достичь memcached или если он просто удерживается в памяти продолжительность запросу). Дали я вижу другой деятельности кэширование в memcached, я уверена, что подключения/установки между memcached и рельсы в порядке. Я считаю, что это не кэшируется по двум причинам: Не выбирает в журнале производства (в режиме отладки) показывает кэш префикс - просто идентичные выбрать с когда-либо-так-слегка разные ХХ.XXms метки; и, Включение аудит базы данных с Oracle показывает десятки одинаковых выбирает в запрос (т. е. идентичные выбрать условия запроса, с такой же случай и тоже привязать параметры) Одно из предложений я видел это посмотреть на промежуточное ПО, чтобы подтвердить, что QueryCache, которые вроде бы:
dave@test:~/code/app1$ rake middleware
use #
use ActiveRecord::QueryCache
Вот пример идентичным выбирает в пределах одного запроса из журнала:
  Policy Load (12.2ms)  SELECT * FROM (SELECT  "POLICY".* FROM "POLICY" WHERE "POLICY"."POLICY_ID" = :a1  ORDER BY policy_original_number DESC, policy_id DESC ) WHERE ROWNUM 

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.
...