| PostgreSQL 8.3beta3 Documentation | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Appendix F. Additional Supplied Modules | Fast Forward | Next |
pgstattuple modules provides various functions to obtain tuple statistics.
pgstattuple() returns the relation length, percentage of the "dead" tuples of a relation and other info. This may help users to determine whether vacuum is necessary or not. Here is an example session:
test=> \x
Expanded display is on.
test=> SELECT * FROM pgstattuple('pg_catalog.pg_proc');
-[ RECORD 1 ]------+-------
table_len | 458752
tuple_count | 1470
tuple_len | 438896
tuple_percent | 95.67
dead_tuple_count | 11
dead_tuple_len | 3157
dead_tuple_percent | 0.69
free_space | 8932
free_percent | 1.95
Here are explanations for each column:
Table F-19. pgstattuple() column descriptions
| Column | Description |
|---|---|
| table_len | physical relation length in bytes |
| tuple_count | number of live tuples |
| tuple_len | total tuples length in bytes |
| tuple_percent | live tuples in % |
| dead_tuple_len | total dead tuples length in bytes |
| dead_tuple_percent | dead tuples in % |
| free_space | free space in bytes |
| free_percent | free space in % |
Note: pgstattuple acquires only a read lock on the relation. So concurrent update may affect the result.
Note: pgstattuple judges a tuple is "dead" if HeapTupleSatisfiesNow() returns false.
pg_relpages() returns the number of pages in the relation.
pgstatindex() returns an array showing the information about an index:
test=> \x
Expanded display is on.
test=> SELECT * FROM pgstatindex('pg_cast_oid_index');
-[ RECORD 1 ]------+------
version | 2
tree_level | 0
index_size | 8192
root_block_no | 1
internal_pages | 0
leaf_pages | 1
empty_pages | 0
deleted_pages | 0
avg_leaf_density | 50.27
leaf_fragmentation | 0
pgstattuple may be called as a relation function and is defined as follows:
CREATE OR REPLACE FUNCTION pgstattuple(text) RETURNS pgstattuple_type
AS 'MODULE_PATHNAME', 'pgstattuple'
LANGUAGE C STRICT;
CREATE OR REPLACE FUNCTION pgstattuple(oid) RETURNS pgstattuple_type
AS 'MODULE_PATHNAME', 'pgstattuplebyid'
LANGUAGE C STRICT;
The argument is the relation name (optionally it may be qualified) or the OID of the relation. Note that pgstattuple only returns one row.