历史版本。 PostgreSQL 9.0 已结束支持。 2015-10-08. 请参阅 当前版本手册.
F.30. pgstattuple — 获取元组级统计信息 #
pgstattuple 模块提供了多种用于获取元组级统计信息的函数。
F.30.1. 函数
-
pgstattuple(text) returns 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.95输出列在表 F.21中描述。
表 F.21.
pgstattupleoutput columnsColumn Type Description table_lenbigint关系的物理长度(字节) tuple_countbigintNumber of live tuples tuple_lenbigint活元组总长度(字节) tuple_percentfloat8Percentage of live tuples dead_tuple_countbigintNumber of dead tuples dead_tuple_lenbigint死元组总长度(字节) dead_tuple_percentfloat8Percentage of dead tuples free_spacebigint总空闲空间(字节) free_percentfloat8Percentage of free space pgstattuple只会在该关系上获取读锁。因此,结果并不代表一个瞬时快照;并发更新会影响结果。pgstattuplejudges a tuple is “dead” ifHeapTupleSatisfiesNowreturns false.-
pgstattuple(oid) returns record 它与
pgstattuple(text)相同,区别在于目标是用 OID 指定的关系。-
pgstatindex(text) returns record pgstatindex返回一个记录,其中显示关于 B-tree 索引的信息。例如: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 | 0The output columns are:
Column Type Description versionintegerB-tree version number tree_levelinteger根页所在的树层级 index_sizebigint索引中的总页数 root_block_nobigintLocation of root block internal_pagesbigintNumber of “internal” (upper-level) pages leaf_pagesbigintNumber of leaf pages empty_pagesbigintNumber of empty pages deleted_pagesbigintNumber of deleted pages avg_leaf_densityfloat8叶子页平均密度 leaf_fragmentationfloat8Leaf page fragmentation 与
pgstattuple一样,结果是逐页累积得到的,因此不应期望它表示整个索引的瞬时快照。-
pg_relpages(text) returns bigint pg_relpages返回该关系中的页数。
F.30.2. 作者
Tatsuo Ishii 和 Satoshi Nagayasu