Kingbase kbstattuple 扩展插件使用

1. 插件kbstattuple简介

kbstattuple提供了多种函数来获得关系中元组的统计信息。默认情况下,只有角色pg_stat_scan_tables的成员和超级用户可以使用。

  • 插件名为 kbstattuple

  • 插件版本 V1.5

2. 插件kbstattuple加载方式

CREATE EXTENSION kbstattuple;

3. 插件kbstattuple的参数配置

无需配置任何参数。

4. 插件kbstattuple的使用方法

kbstattuple提供以下函数:

pgstattuple(regclass) returns record

返回给定关系的物理长度、“死亡”元组百分比等信息。这些信息可以帮助用户决定是否要对关系做清理。

表 40.4.1 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(text) returns record

和pgstattuple(regclass)相同,区别是通过字符串指定关系。

pgstatindex(regclass) returns record

返回B树索引的相关信息。

表 40.4.2 pgstatindex输出列
?

名称

类型

描述

version

integer

B树页面类型版本号

tree_level

integer

root页面的高度

index_size

bigint

索引大小,单位字节

root_block_no

bigint

root页面的块号

internal_pages

bigint

中间页面的数量

leaf_pages

bigint

叶子页面的数量

empty_pages

bigint

空页面的数量

deleted_pages

bigint

被删除页面的数量

avg_leaf_density

float8

叶子页面的平均填充度

leaf_fragmentation

float8

叶子页面的碎片化程度

pgstatindex(text) returns record

和pgstatindex(regclass)相同,区别是通过字符串指定关系。

pgstatginindex(regclass) returns record

返回GIN索引的相关信息。

表 40.4.3 pgstatginindex输出列
?

名称

类型

描述

version

integer

GIN索引页面类型版本号

pending_pages

integer

pending列表中的页面数

pending_tuples

bigint

pending列表中的元组数

pgstathashindex(regclass) returns record

返回HASH索引的相关信息。

表 40.4.4 pgstathashindex输出列
?

名称

类型

描述

version

integer

HASH索引页面类型版本号

bucket_pages

bigint

桶页面的页面数

overflow_pages

bigint

溢出页的页面数

bitmap_pages

bigint

位图页的页面数

unused_pages

bigint

未使用页面的页面数

live_items

bigint

可用元组数

dead_tuples

bigint

无效元组数

free_percent

float

空闲空间占比

pg_relpages(regclass) returns bigint

返回关系的页面数。

pg_relpages(text) returns bigint

和pg_relpages(regclass)相同,区别是通过字符串指定关系。

pgstattuple_approx(regclass) returns record

pgstattuple_approx是pgstattuple的一个更快速的替代,它返回近似的结果。这个函数通过VM页面跳过标记了“全部可见”的页面扫描,并从FSM页面中获取这类页面的空闲空间大小并假设剩余的空间都有“活着的”元组使用。对于不能被跳过的页面,函数会扫描每个元组并进行统计。最后,它会基于已扫描的页面元组数量来估计“活着”的元组总数。除对应pgstattuple的列外,有一个float8类型的列scanned_percent显示扫描的页面占比。

5. 插件kbstattuple卸载方法

DROP EXTENSION kbstattuple;

6. 插件kbstattuple升级方法

通过 ALTER EXTENSION升级插件。

示例,升级到 1.1

ALTER EXTENSION kbstattuple UPDATE TO '1.1';