Sí, es posible borrar los búferes compartidos postgres caché Y la memoria caché del sistema operativo. La solución a continuación es para Windows ... otros ya han dado la solución de Linux.
Como mucha gente ya ha dicho, para borrar los búferes compartidos, puede reiniciar Postgres (no es necesario reiniciar el servidor). Pero hacer esto no borrará la memoria caché del sistema operativo.
Para borrar la caché del sistema operativo utilizado por Postgres, después de suspender el servicio, utilice el excelente RamMap (https://technet.microsoft.com/en-us/sysinternals/rammap), del excelente Sysinternals Suite. Una vez que ejecuta RamMap, simplemente haga clic en "Vaciar" -> "Vaciar lista de espera" en el menú principal.
Reinicie Postgres y verá que su próxima consulta será muy lenta debido a que no tiene memoria caché.
También puede ejecutar el RamMap sin cerrar Postgres, y probablemente tenga los resultados "sin caché" que desee, ya que como ya se dijo, los búferes compartidos generalmente tienen poco impacto en comparación con el caché del sistema operativo. Pero para una prueba confiable, prefiero dejar postgres como todo antes de borrar el caché del sistema operativo para estar seguro.
Nota: AFAIK, no recomiendo borrar otras cosas además de la "Lista de espera" cuando se usa RamMap, porque los otros datos están siendo utilizados de alguna manera, y puede causar problemas/datos sueltos si lo hace. Recuerde que está borrando la memoria no solo utilizada por los archivos de Postgres, sino también por cualquier otra aplicación y sistema operativo.
Saludos, Thiago L.
¿Es posible omitir el almacenamiento en caché en una sola sesión?A menudo necesitamos pruebas de rendimiento diferentes consultas y este almacenamiento en caché hace que sea muy difícil evaluar si un método es mejor que otro (excepto cuando se compara el rendimiento en caché!) – EvilPuppetMaster
Gracias, pero ¿hay un comando SQL Postgres que vacía el caché? –
No hay forma de eludir o vaciar el caché de la base de datos. Todo lo que puede hacer para borrarlo es reiniciar el servidor. –