Pgstattuple
From PostgreSQL 中文维基, PostgreSQL 中文站, PostgreSQL 中国社区, PostgreSQL Chinese community
[编辑] pgstattuple
pgstattuple 模块提供了各种获取元组级别统计信息的函数。
[编辑] 函数
pgstattuple(text) returns record
- pgstattuple 返回一个关系的物理长度,“死亡”元组的百分比,以及其它信息。这些信息可以帮助用户判断是否需要清理(vacuum)。参数是目标关系的名称(可以用模式修饰)。比如:
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
- 输出的字段是:
| 字段 | 类型 | 描述 |
| 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 record
- pgstatindex 返回一条显示某个 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
- 输出的字段是:
| 字段 | 类型 | 描述 |
| version | integer | Btree 版本号 |
| tree_level | integer | 根页面的树层次 |
| index_size | integer | 在索引里面的页面总数 |
| root_block_no | integer | 根块的位置 |
| internal_pages | integer | “内部”(上层)页面的数目 |
| leaf_pages | integer | 叶子页面的数目 |
| empty_pages | integer | 空页面的数目 |
| deleted_pages | integer | 删除页面的数目 |
| avg_leaf_density | float8 | 叶子页面的平均密度 |
| leaf_fragmentation | float8 | 叶子页面的碎片 |
- 和 pgstattuple 一样,结果是一页一页累加的,并且不应该看做是一个全索引的及时快照。
pg_relpages(text) returns integer
- pg_relpages 返回关系中的页面数目。
[编辑] 作者
Tatsuo Ishii
