| PostgreSQL 9.1.14 Documentation | ||||
|---|---|---|---|---|
| Prev | Up | Appendix F. Additional Supplied Modules | Next | |
The pgstattuple module provides various functions to obtain tuple-level statistics.
pgstattuple(text) returns record      pgstattuple returns a relation's physical length,
      percentage of "dead" tuples, and other info. This may help users
      to determine whether vacuum is necessary or not.  The argument is the
      target relation's name (optionally schema-qualified).
      For example:
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.95The output columns are described in Table F-21.
Table F-21. pgstattuple Output Columns
| Column | Type | Description | 
|---|---|---|
| table_len | bigint | Physical relation length in bytes | 
| tuple_count | bigint | Number of live tuples | 
| tuple_len | bigint | Total length of live tuples in bytes | 
| tuple_percent | float8 | Percentage of live tuples | 
| dead_tuple_count | bigint | Number of dead tuples | 
| dead_tuple_len | bigint | Total length of dead tuples in bytes | 
| dead_tuple_percent | float8 | Percentage of dead tuples | 
| free_space | bigint | Total free space in bytes | 
| free_percent | float8 | Percentage of free space | 
     pgstattuple acquires only a read lock on the
     relation. So the results do not reflect an instantaneous snapshot;
     concurrent updates will affect them.
    
     pgstattuple judges a tuple is "dead" if
     HeapTupleSatisfiesNow returns false.
    
pgstattuple(oid) returns record      This is the same as pgstattuple(text), except
      that the target relation is specified by OID.
     
pgstatindex(text) returns record      pgstatindex returns a record showing information
      about a B-tree index.  For example:
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
The output columns are:
| Column | Type | Description | 
|---|---|---|
| version | integer | B-tree version number | 
| tree_level | integer | Tree level of the root page | 
| index_size | bigint | Total number of pages in index | 
| root_block_no | bigint | Location of root block | 
| internal_pages | bigint | Number of "internal" (upper-level) pages | 
| leaf_pages | bigint | Number of leaf pages | 
| empty_pages | bigint | Number of empty pages | 
| deleted_pages | bigint | Number of deleted pages | 
| avg_leaf_density | float8 | Average density of leaf pages | 
| leaf_fragmentation | float8 | Leaf page fragmentation | 
     As with pgstattuple, the results are accumulated
     page-by-page, and should not be expected to represent an
     instantaneous snapshot of the whole index.
    
pg_relpages(text) returns bigint      pg_relpages returns the number of pages in the
      relation.
     
Tatsuo Ishii and Satoshi Nagayasu