Estoy construyendo una aplicación de línea de comandos usando ActiveRecord 3.0 (sin rieles). ¿Cómo borro el caché de consultas que mantiene ActiveRecord?Limpiando el caché ActiveRecord
18
A
Respuesta
2
Tenga una mirada en el método clear_query_cache
en http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/QueryCache.html
23
En una primera aproximación:
ActiveRecord::Base.connection.query_cache.clear
0
A menudo cuando vea el almacenamiento en caché de consultas de bases de datos, su base de datos está haciendo el almacenamiento en caché, no ActiveRecord, lo que significa necesita borrar el caché y los búferes en el nivel de db, no en el nivel de ActiveRecord.
Por ejemplo, para borrar la memoria caché y los búferes de Postgres en Mac, haría sudo purge
, lo que obliga a que la memoria caché del disco se vacíe y vacíe.
Para borrar la memoria caché y tampones Postgres' en Linux, que cerraría postgres, deje caer los cachés, y empezar a postgres respaldo otra vez:
service postgresql stop
sync
echo 3 > /proc/sys/vm/drop_caches
service postgresql start
Más información:
Cuestiones relacionadas
- 1. Limpiando el caché de Symfony para otra aplicación
- 2. limpiando un caché de vistas web para archivos locales
- 3. Limpiando el caché de autenticación TortoiseSVN desde la línea de comando
- 4. limpiando un depósito Mercurial
- 5. ¿Limpiando bloques en línea?
- 6. Cómo usar ActiveRecord caché de consultas con SQL personalizado
- 7. Modelos ActiveRecord almacenados en caché en tareas de rake?
- 8. Limpiando <textarea> con Javascript?
- 9. Limpiando los enlaces simbólicos de Magento Modman
- 10. Cómo deshabilitar el registro de la memoria caché activerecord en los rieles
- 11. ActiveRecord :: DangerousAttributeError
- 12. Limpiando mi JFrame & JPanel en un nuevo juego
- 13. ActiveRecord :: UnknownAttributeError?
- 14. ActiveRecord :: SubclassNotFound
- 15. Symfony2 ¿desactivar el caché?
- 16. ¿Cómo puedo ver el SQL ActiveRecord genera?
- 17. ¿Desea aprender el patrón ActiveRecord en C#
- 18. Relación sobre el alcance de ActiveRecord
- 19. Rieles: Reemplazando el método de asociación ActiveRecord
- 20. Tengo ActiveRecord :: AssociationTypeMismatch en el modelo save
- 21. Limpiando el ruido de los rastros de la pila de Java
- 22. Caché Postgresql (memoria) rendimiento + cómo calentar el caché
- 23. rendimiento de ActiveRecord SessionStore
- 24. Codeigniter - soportes con activerecord?
- 25. atributo faltante en activerecord
- 26. establish_connection obras en ActiveRecord
- 27. ActiveRecord igualdad de objetos
- 28. ActiveRecord: cuente con grupos
- 29. Alternativas ORM a ActiveRecord
- 30. Mixing ActiveRecord find Condiciones
He visto el método. Sin embargo, llamarlo a MyModel.connection no parece tener ningún efecto. Estoy haciendo inserciones masivas y necesito borrar el caché de consultas para que ActiveRecord pueda ver los nuevos registros, pero hasta ahora no he tenido éxito. – clacke
Parece que en Rails 2 puede llegar al caché de consultas a través de 'ActiveRecord :: Base.query_cache.clear_query_cache', pero ahora ese lugar ya no está. Como dije, hacerlo sobre la conexión del modelo no funciona. Finalmente lo resolví yendo por completo detrás de la espalda de AR también para las consultas que siguen a esa inserción masiva. – clacke
@clacke puede publicar la solución final que encontró ("completamente detrás de la espalda de AR")? ¿O indirectamente está diciendo que usa SQL en lugar de AR? – jvatic