| From: | Gilles Darold <gilles(dot)darold(at)dalibo(dot)com> |
|---|---|
| To: | pgsql-hackers(at)lists(dot)postgresql(dot)org |
| Subject: | Re: [patch] Add schema total size to psql \dn+ |
| Date: | 2019-02-21 19:16:27 |
| Message-ID: | 35b7cf9e-d2a0-6b6e-59e5-e290bd28020d@dalibo.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Le 21/02/2019 à 18:28, Julien Rouhaud a écrit :
> On Thu, Feb 21, 2019 at 5:42 PM Gilles Darold <gilles(dot)darold(at)dalibo(dot)com> wrote:
>> Le 21/02/2019 à 12:01, Julien Rouhaud a écrit :
>>> On Thu, Feb 21, 2019 at 11:49 AM Gilles Darold <gilles(dot)darold(at)dalibo(dot)com> wrote:
>>>>> When we want to get total size of all relation in a schema we have to
>>>>> execute one of our favorite DBA query. It is quite simple but what
>>>>> about displaying schema size when using \dn+ in psql ?
>>>>> [...]
>>>>> The attached simple patch adds this feature. Is there any cons adding
>>>>> this information? The patch tries to be compatible to all PostgreSQL
>>>>> version. Let me know if I have missed something.
> I have a few comments about the patch.
>
> You're using pg_class LEFT JOIN pg_namespace while we need INNER JOIN
> here AFAICT. Also, you're using pg_relation_size(), so fsm, vm won't
> be accounted for. You should also be bypassing the size for 8.0-
> servers where there's no pg_*_size() functions.
I agree all points. Attached is a new version of the patch that use
pg_total_relation_size() and a filter on relkind IN ('r','m','S'), JOIN
fixes and no size report before 8.1.
Thanks for the review.
--
Gilles Darold
Consultant PostgreSQL
http://dalibo.com - http://dalibo.org
| Attachment | Content-Type | Size |
|---|---|---|
| psql-schema-size-v3.diff | text/x-patch | 1.9 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | David Rowley | 2019-02-21 19:49:26 | Re: Delay locking partitions during INSERT and UPDATE |
| Previous Message | Peter Eisentraut | 2019-02-21 18:56:31 | Re: restrict pg_stat_ssl to superuser? |