Improve README with mention of new functions.

REL8_0_STABLE
Bruce Momjian 21 years ago
parent 6bb0d54eb8
commit cef30c650b
  1. 57
      contrib/dbsize/README.dbsize

@ -1,15 +1,54 @@
This module contains two functions that report the size of a given This module contains several functions that report the size of a given
database or relation. E.g., database object:
int8 database_size(name)
int8 relation_size(text)
int8 pg_database_size(oid)
int8 pg_tablespace_size(oid)
int8 pg_relation_size(oid)
text pg_size_pretty(int8)
The first two functions:
SELECT database_size('template1'); SELECT database_size('template1');
SELECT relation_size('pg_class'); SELECT relation_size('pg_class');
These functions report the actual file system space. Thus, users can take the name of the object, and support databases and tables. Please
avoid digging through the details of the database directories. note that relation_size() only reports table file usage and not the
space used by indexes and toast tables.
Functions using oids are:
SELECT pg_database_size(1); -- template1 database
SELECT pg_tablespace_size(1663); -- pg_default tablespace
SELECT pg_relation_size(1259); -- pg_class table size
pg_relation_size() will report the size of the table, index and toast
table OIDs, but they must be requested individually. To obtain the total
size of a table including all helper files you'd have to do something
like:
XXX This query does not work, syntax error XXX
SELECT pg_relation_size(cl.oid) AS tablesize,
CASE WHEN reltoastrelid=0 THEN 0
ELSE pg_relation_size(reltoastrelid) END AS toastsize,
SUM(pg_relation_size(indexrelid)) AS indexsize,
pg_size_pretty(pg_relation_size(cl.oid)
+ pg_relation_size(reltoastrelid)
+ SUM(pg_relation_size(indexrelid))::int8)
AS totalsize
FROM pg_class cl
JOIN pg_index ON cl.oid=indrelid
WHERE relname = 'pg_rewrite'
GROUP BY 1,2
This sample query utilizes the helper function pg_size_pretty(int8),
which formats the number of bytes into a convenient string using KB, MB,
GB. It is also contained in this module.
Copy this directory to contrib/dbsize in your PostgreSQL source tree. To install, just run make; make install. Finally, load the functions
Then just run make; make install. Finally, load the functions into any into any database using dbsize.sql.
database using dbsize.sql.
When computing the size of a table, it does not include TOAST or index
disk space.

Loading…
Cancel
Save