"Ing . Marcos Luís Ortíz Valmaseda" escribió: > Saludos listeros. Me surge la duda si PostgreSQL en su > implementación interna, tiene alguna especie de cache interna. O sea > cuando se va a ejecutar una consulta por primera vez, si se tiene un > sistema de cache ésta se debería ejecutar lento, pero cuando se > ejecute de nuevo, debería ser por lo menos un 20 % más rápida (en > algún caso). > Cuando se establece la comunicación entre el planner/optimizer y el > executor, hay alguna forma de que se pueda guardar los caminos de > las consultas ? > Y entonces en caso de que se vaya a ejecutar de nuevo, si el > resultado ya está cacheado o guardado en un directorio tmp (una > idea) no sería más rápida la devolución de los resultados?
Postgres tiene varios caches, pero ninguno de ellos guarda resultados de consultas. Uno de los caches puede explicar fácilmente un 20% de aumento de rendimiento en algunas consultas: el cache de páginas de disco. La primera vez las páginas deben ser leídas de disco, las veces subsiguientes las páginas están en memoria (ya sea en cache del kernel o en shared_buffers). Si quieres "recordar" planes de ejecución, puedes usar PREPARE y EXECUTE, pero no siempre es mejor que re-planear la consulta cada vez. -- Alvaro Herrera http://www.amazon.com/gp/registry/3BP7BYG9PUGI8 "The ability to monopolize a planet is insignificant next to the power of the source" -- TIP 6: ¿Has buscado en los archivos de nuestra lista de correo? http://archives.postgresql.org/pgsql-es-ayuda