Ja, ist es möglich , sowohl den gemeinsam genutzte Puffer Postgres - Cache zu löschen und den OS - Cache. Die folgende Lösung ist für Windows ... andere haben die Linux-Lösung bereits angegeben.
Wie bereits erwähnt, können Sie zum Löschen der freigegebenen Puffer Postgres einfach neu starten (Server muss nicht neu gestartet werden). Wenn Sie dies jedoch tun, wird der Betriebssystem-Cache nicht geleert.
Verwenden Sie die exzellente RamMap ( https://technet.microsoft.com/en-us/sysinternals/rammap ) aus der exzellenten Sysinternals Suite , um den von Postgres verwendeten Betriebssystem-Cache nach dem Beenden des Dienstes zu löschen . Sobald Sie RamMap ausgeführt haben, klicken Sie im Hauptmenü einfach auf "Leer" -> "Leere Standby-Liste".
Starten Sie Postgres neu und Sie werden sehen, dass Ihre nächste Abfrage verdammt langsam ist, da überhaupt kein Cache vorhanden ist.
Sie können die RamMap auch ausführen, ohne Postgres zu schließen, und haben wahrscheinlich die gewünschten Ergebnisse "kein Cache", da gemeinsam genutzte Puffer, wie bereits erwähnt, im Vergleich zum Betriebssystem-Cache normalerweise nur geringe Auswirkungen haben. Aber für einen zuverlässigen Test würde ich lieber Postgres wie alle stoppen, bevor ich den Betriebssystem-Cache lösche, um sicherzugehen.
Hinweis: AFAIK, ich empfehle nicht, die anderen Dinge außer "Standby-Liste" zu löschen, wenn Sie RamMap verwenden, da die anderen Daten irgendwie verwendet werden und Sie möglicherweise Probleme / lose Daten verursachen können, wenn Sie dies tun. Denken Sie daran, dass Sie nicht nur Speicher löschen, der von Postgres-Dateien verwendet wird, sondern auch alle anderen Apps und Betriebssysteme.
Grüße, Thiago L.