pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
pgstattuple 模块提供了多种用于获取元组级统计信息的函数。
pgstattuple(text) returns recordpgstattuple 返回一个关系的物理长度、 “死”元组所占百分比以及其他信息。这可以帮助用户判断是否 需要执行清理。参数是目标关系的名称(可选带模式限定)。例如:
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.25 中描述。
表 F.25. 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) returns record它与 pgstattuple(text) 相同,区别在于目标是 用 OID 指定的关系。
pgstatindex(text) returns recordpgstatindex 返回一个记录,其中显示关于 btree 索引的信息。例如:
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
输出列为:
表 F.26. pgstatindex输出列
| 列 | 类型 | 描述 |
|---|---|---|
version |
integer |
Btree 版本号 |
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 一样,结果是逐页累积得到的,因此不 应期望它表示整个索引的瞬时快照。
pg_relpages(text) returns bigintpg_relpages 返回该关系中的页数。
Tatsuo Ishii 和 Satoshi Nagayasu
译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。