| PostgreSQL 9.3.4 文档 | ||||
|---|---|---|---|---|
| Prev | Up | Appendix F. 额外提供的模块 | Next | |
pgstattuple模块提供多种函数来获得元组层的统计信息。
pgstattuple(text) 返回 record      pgstattuple返回一个关系的物理长度、"死亡"元组的百分比以及其他信息。这可以帮助用户决定是否需要清理。参数是目标关系的名称(可以有选择地用模式限定)。例如:
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.95Table F-21中描述了输出列。
Table F-21. pgstattuple 输出列
| 列 | 类型 | 描述 | 
|---|---|---|
| table_len | bigint | 物理关系长度,以字节计 | 
| tuple_count | bigint | 存活元组的数量 | 
| tuple_len | bigint | 存活元组的总长度,以字节计 | 
| tuple_percent | float8 | 存活元组的百分比 | 
| dead_tuple_count | bigint | 死亡元组的数量 | 
| dead_tuple_len | bigint | 死亡元组的总长度,以字节计 | 
| dead_tuple_percent | float8 | 死亡元组的百分比 | 
| free_space | bigint | 空闲空间总量,以字节计 | 
| free_percent | float8 | 空闲空间的百分比 | 
     pgstattuple只要求在关系上的一个读锁。因此结果不能反映一个即时快照,并发更新将影响结果。
    
     如果HeapTupleSatisfiesNow返回假,pgstattuple就判定一个元组是"死亡的"。
    
pgstattuple(oid) 返回 record      与pgstattuple(text)相同,只不过通过  OID 指定目标关系。
     
pgstatindex(text) 返回 record      pgstatindex返回一个记录显示有关一个 B-树 索引的信息。例如:
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
输出列是:
| 列 | 类型 | 描述 | 
|---|---|---|
| version | integer | B-树 版本号 | 
| tree_level | integer | 根页的树层次 | 
| index_size | bigint | 索引中页面总数 | 
| root_block_no | bigint | 根块的位置 | 
| internal_pages | bigint | "内部"(上层)页面的数量 | 
| leaf_pages | bigint | 叶子页的数量 | 
| empty_pages | bigint | 空页的数量 | 
| deleted_pages | bigint | 删除页的数量 | 
| avg_leaf_density | float8 | 叶子页的平均密度 | 
| leaf_fragmentation | float8 | 叶子页碎片 | 
     对于pgstattuple,结果是一页一页累计的并且不要期望结果会表示整个索引的一个即时快照。
    
pgstatginindex(regclass) 返回 record      pgstatginindex返回一个记录显示有关一个 GIN 索引的信息。例如:
test=> SELECT * FROM pgstatginindex('test_gin_index');
-[ RECORD 1 ]--+--
version        | 1
pending_pages  | 0
pending_tuples | 0
输出列是:
pg_relpages(text) 返回 bigint      pg_relpages返回关系中的页面数。
     
Tatsuo Ishii 和 Satoshi Nagayasu