Sorry, I left out

 AND relkind = 'r'

will which restrict to just tables.

On Thu, Jun 4, 2015 at 10:24 AM, Hans Guijt <h...@terma.com> wrote:

>  Thanks, this is most helpful. I originally found that query somewhere on
> the internet and used it as-is.
>
>
>
> If I drop the restriction on table name I get a list that also includes
> indexes, constraints, etc. Is there a way to restrict the returned set to
> tables only?
>
>
>
>
>
> Hans Guijt
>
>
>
>
>
>
> *From:* Melvin Davidson [mailto:melvin6...@gmail.com]
> *Sent:* 04 June 2015 16:08
> *To:* Tom Lane
> *Cc:* Hans Guijt; pgsql-general@postgresql.org
> *Subject:* Re: [GENERAL] pg_relation_size performance issue
>
>
>
> 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. [image: Image removed by
> sender.]*
>
>
>
>
> --
>
> *Melvin Davidson*
>
> *I reserve the right to fantasize.  Whether or not you wish to share my
> fantasy is entirely up to you. [image: Image removed by sender.]*
>
>
>
>
> --
>
> *Melvin Davidson*
>
> *I reserve the right to fantasize.  Whether or not you wish to share my
> fantasy is entirely up to you. [image: Image removed by sender.]*
>



-- 
*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