Dammit pg_total_relation_size includes toast data. Thumb problems and to
quick to hit send. :(


On Thu, Jun 4, 2015 at 10:07 AM, Melvin Davidson <melvin6...@gmail.com>
wrote:

> Correction, pg_relation_size includes toast data.
>
> On Thu, Jun 4, 2015 at 10:03 AM, Melvin Davidson <melvin6...@gmail.com>
> wrote:
>
>> I'm not sure why you are adding toast to table size, since
>> pg_relation_size already does that.
>>
>> http://www.postgresql.org/docs/9.3/interactive/functions-admin.html
>>
>> This query might work better and faster for you.
>>
>> SELECT n.nspname as schema,
>>              c.relname as table,
>>              a.rolname as owner,
>>              c.relfilenode as filename,
>>              c.reltuples::integer,
>>              pg_size_pretty(pg_relation_size( quote_ident( n.nspname ) ||
>> '.' || quote_ident( c.relname ) )) as size,
>>              pg_size_pretty(pg_total_relation_size( quote_ident(
>> n.nspname ) || '.' || quote_ident( c.relname ) )) as total_size,
>>              pg_relation_size( quote_ident( n.nspname ) || '.' ||
>> quote_ident( c.relname ) ) as size_bytes,
>>              pg_total_relation_size( quote_ident( n.nspname ) || '.' ||
>> quote_ident( c.relname ) ) as total_size_bytes,
>>             CASE WHEN c.reltablespace = 0
>>                         THEN 'pg_default'
>>                         ELSE (SELECT t.spcname
>>                                      FROM pg_tablespace t WHERE (t.oid =
>> c.reltablespace) )
>>                          END as tablespace
>>    FROM pg_class c
>>       JOIN pg_namespace n ON (n.oid = c.relnamespace)
>>      JOIN pg_authid a ON ( a.oid = c.relowner )
>> WHERE c.relname = 'sensor'
>>       AND n.nspname = 'devtest';
>>
>>
>>
>> On Thu, Jun 4, 2015 at 9:50 AM, Tom Lane <t...@sss.pgh.pa.us> wrote:
>>
>>> Hans Guijt <h...@terma.com> writes:
>>> > I have a Postgres 9.3.7 database, freshly created on Ubuntu 14 LTS 64
>>> bit, and at this time almost completely empty. I'm attempting to find the
>>> size of a table, using the following code:
>>> > SELECT
>>> >   pg_relation_size (stat.relid),
>>> >   CASE WHEN cl.reltoastrelid = 0 THEN
>>> >   0
>>> >   ELSE
>>> >   pg_relation_size (cl.reltoastrelid) + COALESCE ((
>>> >   SELECT SUM (pg_relation_size (indexrelid)) FROM pg_index WHERE
>>> indrelid=cl.reltoastrelid
>>> >   ), 0)::int8
>>> > END,
>>> > COALESCE ((SELECT SUM (pg_relation_size (indexrelid)) FROM pg_index
>>> WHERE indrelid=stat.relid), 0)::int8
>>> > FROM pg_stat_all_tables stat
>>> > JOIN pg_class cl ON cl.oid=stat.relid
>>> > JOIN pg_namespace ns ON cl.relnamespace=ns.oid
>>> > WHERE UPPER (cl.relname) = UPPER ('sensor')
>>> >    AND UPPER (ns.nspname) = UPPER ('devtest')
>>>
>>> Getting rid of the useless join to pg_stat_all_tables would probably
>>> help;
>>> there's a lot of computation in that view.
>>>
>>>                         regards, tom lane
>>>
>>>
>>> --
>>> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
>>> To make changes to your subscription:
>>> http://www.postgresql.org/mailpref/pgsql-general
>>>
>>
>>
>>
>> --
>> *Melvin Davidson*
>> I reserve the right to fantasize.  Whether or not you
>> wish to share my fantasy is entirely up to you.
>>
>
>
>
> --
> *Melvin Davidson*
> I reserve the right to fantasize.  Whether or not you
> wish to share my fantasy is entirely up to you.
>



-- 
*Melvin Davidson*
I reserve the right to fantasize.  Whether or not you
wish to share my fantasy is entirely up to you.

Reply via email to