Re: pg_class.relpages

From: Bertrand Petit <pgsql-sql(at)phoe(dot)frmug(dot)org>
To: PostgreSQL-sql <pgsql-sql(at)postgresql(dot)org>
Subject: Re: pg_class.relpages
Date: 2003-09-28 01:53:13
Message-ID: 20030928035313.B77510@memo.frmug.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

On Sat, Sep 27, 2003 at 08:26:16PM -0400, Bruce Momjian wrote:
> Bertrand Petit wrote:
> >
> > Does the figures stored in pg_class.relpages include the pages
> > consumed by the toast tables linked to a normal table?
>
> No. See the chapter on monitoring disk space for more information.

Okay. I eventually wrote the following query that lists tables
and indices sizes. A view similar to this query might my useful for
the general public if defined in the information schema.

SELECT pg_namespace.nspname AS schema,
COALESCE((SELECT class3.relname
FROM pg_class AS class3, pg_index
WHERE class1.oid=pg_index.indexrelid AND
class3.oid=pg_index.indrelid),
class1.relname) AS table,
CASE
WHEN class1.relkind='r' THEN NULL
ELSE class1.relname
END AS index,
(SELECT COALESCE(class1.relpages+SUM(class2.relpages),
class1.relpages) * 8
FROM pg_class AS class2
WHERE class2.oid IN (class1.reltoastrelid,
class1.reltoastidxid)) AS size
FROM pg_class AS class1, pg_namespace
WHERE class1.relnamespace = pg_namespace.oid AND
pg_namespace.nspname NOT IN ('pg_catalog',
'information_schema',
'pg_toast') AND
class1.relkind IN ('r', 'i')
ORDER BY class1.relnamespace ASC, class1.relname ASC,
class1.relkind DESC

--
%!PS
297.6 420.9 translate 90 rotate 0 setgray gsave 0 1 1{pop 0 180 moveto 100
180 170 100 170 -10 curveto 180 -9 180 -9 190 -10 curveto 190 100 100 180
0 180 curveto fill 180 rotate}for grestore/Bookman-LightItalic findfont
240 scalefont setfont -151.536392 -63.7998886 moveto (bp)show showpage

In response to

Browse pgsql-sql by date

  From Date Subject
Next Message Jan Wieck 2003-09-28 03:33:06 Re: [SQL] plpgsql doesn't coerce boolean expressions to
Previous Message Tom Lane 2003-09-28 01:28:33 Re: [SQL] plpgsql doesn't coerce boolean expressions to boolean