Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
P
postgres-lambda-diff
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Jakob Huber
postgres-lambda-diff
Commits
cef30c65
Commit
cef30c65
authored
20 years ago
by
Bruce Momjian
Browse files
Options
Downloads
Patches
Plain Diff
Improve README with mention of new functions.
parent
6bb0d54e
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
contrib/dbsize/README.dbsize
+50
-11
50 additions, 11 deletions
contrib/dbsize/README.dbsize
with
50 additions
and
11 deletions
contrib/dbsize/README.dbsize
+
50
−
11
View file @
cef30c65
This module contains
two
functions that report the size of a given
database o
r relation. E.g.,
This module contains
several
functions that report the size of a given
database o
bject:
SELECT
database_size(
'template1');
SELECT
relation_size(
'pg_class');
int8
database_size(
name)
int8
relation_size(
text)
These functions report the actual file system space. Thus, users can
avoid digging through the details of the database directories.
int8 pg_database_size(oid)
int8 pg_tablespace_size(oid)
int8 pg_relation_size(oid)
Copy this directory to contrib/dbsize in your PostgreSQL source tree.
Then just run make; make install. Finally, load the functions into any
database using dbsize.sql.
text pg_size_pretty(int8)
The first two functions:
SELECT database_size('template1');
SELECT relation_size('pg_class');
take the name of the object, and support databases and tables. Please
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.
To install, just run make; make install. Finally, load the functions
into any database using dbsize.sql.
When computing the size of a table, it does not include TOAST or index
disk space.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment