uxstattuple返回一个关系的物理长度、“死亡”元组的百分比以及其他信息。这可以帮助用户决定是否需要清理。参数是目标关系的名称(可以有选择地用模式限定)或者OID。例如:
test=> SELECT * FROM uxstattuple('ux_catalog.ux_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
表?16.1.?uxstattuple输出列
列 | 类型 | 描述 |
---|---|---|
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 | 空闲空间的百分比。 |
table_len将总是比tuple_len、 dead_tuple_len和free_space的和要大。这种差异是由固定的页面开销、每页指向元组的指针表以及确保元组正确对齐的填充造成的。
uxstattuple只要求在关系上的一个读锁。因此结果不能反映一个即时快照,并发更新将影响结果。
如果HeapTupleSatisfiesDirty返回假,uxstattuple就判定一个元组是“死亡的”。