Очищается ли подготовленный кэш операторов для каждого запроса в Rails 3.1? - PullRequest
1 голос
/ 14 ноября 2011

Я долго искал и не вижу упоминаний о том, когда очищенный кэш операторов очищается в Rails.Он очищается после каждого запроса, как кеш запросов?

Ответы [ 2 ]

1 голос
/ 05 декабря 2013

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

Просмотр activerecord-oracle_enhancedАдаптер, в версии 1.4.1 добавлена ​​конфигурация «Statement_limit», значение по умолчанию равно 250. Каждый раз, когда адаптер добавляет инструкцию в подготовленный кэш операторов, он сначала удаляет подготовленные операторы из конца кэша (просто массив), пока не будетпод этим пределом.

Если вы хотите очистить все подготовленные операторы, вы можете сделать это, вызвав connection.clear_cache!

Это только для драйвера oracle_enhanced.Если вы используете postgresql или что-то еще, проверьте документы для этого драйвера.Надеюсь, это поможет.

0 голосов
/ 22 февраля 2012

Из документации промежуточного программного обеспечения :

ActiveRecord :: QueryCache кэширует все запросы SELECT, сгенерированные в запросе. Если имеет место какая-либо INSERT или UPDATE, то кэш очищается.

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