On Wed, Jun 16, 2021 at 12:02:52PM +0530, Atul Kumar wrote:
>
> Sometimes I run a Postgres query it takes 30 seconds. Then, I
> immediately run the same query and it takes 2 seconds. It appears that
> Postgres has some sort of caching. Can I somehow see what that cache
> is holding?
You can use pgbuffercache for that:
https://www.postgresql.org/docs/current/pgbuffercache.html
> Can I force all caches to be cleared for tuning purposes?
> So I need to clear the cache without restarting/rebooting the postgres
> server to check the correct execution plan of my query.
No, cleaning postgres cache can only be done with a service restart. That
being said, tuning shouldn't be done assuming that there's no cache. On the
opposite maybe what you should do is use pg_prewarm
(https://www.postgresql.org/docs/current/pgprewarm.html) to make sure that your
cache isn't empty after a restart.
Note that you also have the operating system cache. It can be cleared without
restarting the OS, but I have no idea if this is possible with RDS.