Hi Sam,

When behind a terminal I use \l+ to show the size of the databases, since it is 
handy to remember. It shows db size in a "pretty size".

Timing both commands, i see that \l+ takes more or less the same time your 
query takes, but I think your query better fits the monitoring purpose.

But the real point here is why are you running the command every ~3 seconds? 
(and perhaps, why 200 databases?)

I would focus on that issue, and keep using your query.


regards,

fabio pardi


On 15/06/18 02:29, Sam Saffron wrote:
> Hi there,
>
> At the moment we are using:
>
> SELECT pg_database.datname, pg_database_size(pg_database.datname) as
> size FROM pg_database
>
> To gather size of databases for monitoring purposes in Prometheus.
>
> Our pg stat logging now shows this is our number one query cause we
> seem to be running it for some crazy reason 19 times a minute. Clearly
> this is too much and we should (and will) cache results for a bit.
>
> Nonetheless, I notice it take 400ms to run on our cluster (with a few
> 200 dbs) and was wondering if there is a quicker way of estimating
> this number?
>
> Sam
>


Reply via email to