
# 统计信息函数
统计信息函数根据访问对象分为两种类型：针对某个数据库进行访问的函数，以数据库中每个表或索引的OID作为参数，标识需要报告的数据库；针对某个服务器进行访问的函数，以一个服务器进程号为参数，其范围从1到当前活跃服务器的数目。
对于全局临时表，函数入参是表在pg_class中的OID，函数返回当前会话数据的统计信息，所以同一张全局临时表在不同会话查询下列统计信息函数得到的结果可能不同。
#### pg_stat_get_db_numbackends(oid)
描述：查询当前实例上指定数据库活跃的服务器线程数目。
返回值类型：integer
#### pg_stat_get_db_total_numbackends(oid)
描述：在CN上执行该函数，返回集群中所有CN上指定数据库活跃的服务器线程总数。在DN上执行该函数，返回当前实例上指定数据库活跃的服务器线程数目。
返回值类型：integer
#### pg_stat_get_db_xact_commit(oid)
描述：返回当前实例上指定数据库中已提交事务的数量。
返回值类型：bigint
#### pg_stat_get_db_total_xact_commit(oid)
描述：在CN上执行该函数，返回集群中所有CN上指定数据库中已提交事务的总数。在DN上执行该函数，返回当前实例上指定数据库中已提交事务的数量。
返回值类型：bigint
#### pg_stat_get_db_xact_rollback(oid)
描述：返回当前实例上指定数据库中回滚事务的数量。
返回值类型：bigint
#### pg_stat_get_db_total_xact_rollback(oid)
描述：在CN上执行该函数，返回集群中所有CN上指定数据库中回滚事务的总数。在DN上执行该函数，返回当前实例上指定数据库中回滚事务的数量。
返回值类型：bigint
#### pg_stat_get_db_blocks_fetched(oid)
描述：返回当前实例上指定数据库中磁盘块抓取请求的数量。
返回值类型：bigint
#### pg_stat_get_db_total_blocks_fetched(oid)
描述：在CN上执行该函数，返回集群中所有DN上指定数据库中磁盘块抓取请求的总数。在DN上执行该函数，返回当前实例上指定数据库中磁盘块抓取请求的数量。
返回值类型：bigint
#### pg_stat_get_db_blocks_hit(oid)
描述：返回当前实例上指定数据库在缓冲区中找到的请求磁盘块的数量。
返回值类型：bigint
#### pg_stat_get_db_total_blocks_hit(oid)
描述：在CN上执行该函数，返回集群中所有DN上指定数据库在缓冲区中找到的请求磁盘块的总数。在DN上执行该函数，返回当前实例上指定数据库在缓冲区中找到的请求磁盘块的数量。
返回值类型：bigint
#### pg_stat_get_db_tuples_returned(oid)
描述：返回当前实例上指定数据库返回的元组数量。
返回值类型：bigint
#### pg_stat_get_db_total_tuples_returned(oid)
描述：在CN上执行该函数，返回集群中所有DN上指定数据库返回的元组总数。在DN上执行该函数，返回当前实例上指定数据库返回的元组数量。
返回值类型：bigint
#### pg_stat_get_db_tuples_fetched(oid)
描述：返回当前实例上指定数据库中读取的元组数量。
返回值类型：bigint
#### pg_stat_get_db_total_tuples_fetched(oid)
描述：在CN上执行该函数，返回集群中所有DN上指定数据库读取的元组总数。在DN上执行该函数，返回当前实例上指定数据库读取的元组数量。
返回值类型：bigint
#### pg_stat_get_db_tuples_inserted(oid)
描述：返回当前实例上指定数据库中插入的元组数量。
返回值类型：bigint
#### pg_stat_get_db_total_tuples_inserted(oid)
描述：在CN上执行该函数，返回集群中所有DN上指定数据库插入的元组总数。在DN上执行该函数，返回当前实例上指定数据库插入的元组数量。
返回值类型：bigint
#### pg_stat_get_db_tuples_updated(oid)
描述：返回当前实例上指定数据库中更新的元组数量。
返回值类型：bigint
#### pg_stat_get_db_total_tuples_updated(oid)
描述：在CN上执行该函数，返回集群中所有DN上指定数据库更新的元组总数。在DN上执行该函数，返回当前实例上指定数据库更新的元组数量。
返回值类型：bigint
#### pg_stat_get_db_tuples_deleted(oid)
描述：返回当前实例上指定数据库中删除的元组数量。
返回值类型：bigint
#### pg_stat_get_db_total_tuples_deleted(oid)
描述：在CN上执行该函数，返回集群中所有DN上指定数据库删除的元组总数。在DN上执行该函数，返回当前实例上指定数据库删除的元组数量。
返回值类型：bigint
#### pg_stat_get_db_conflict_lock(oid)
描述：在CN上执行该函数，返回集群中所有CN和DN上指定数据库锁冲突的总数。在DN上执行该函数，返回当前实例上指定数据库中锁冲突数量。
返回值类型：bigint
#### pg_stat_get_db_deadlocks(oid)
描述：返回当前实例上指定数据库中死锁的数量。
返回值类型：bigint
#### pg_stat_get_db_total_deadlocks(oid)
描述：在CN上执行该函数，返回集群中所有CN和DN上指定数据库死锁的总数。在DN上执行该函数，返回当前实例上指定数据库中死锁的数量。
返回值类型：bigint
#### pg_stat_get_db_conflict_all(oid)
描述：返回当前实例上指定数据库中发生冲突恢复的次数。
返回值类型：bigint
#### pg_stat_get_db_total_conflict_all(oid)
描述：在CN上执行该函数，返回集群中所有CN和DN上指定数据库发生冲突恢复的总次数。在DN上执行该函数，返回当前实例上指定数据库中发生冲突恢复的次数。
返回值类型：bigint
#### pg_stat_get_db_temp_files(oid)
描述：返回当前实例上指定数据库中创建临时文件的个数。
返回值类型：bigint
#### pg_stat_get_db_total_temp_files(oid)
描述：在CN上执行该函数，返回集群中所有DN上指定数据库中创建临时文件的总个数。在DN上执行该函数，返回当前实例上指定数据库中创建临时文件的个数。
返回值类型：bigint
#### pg_stat_get_db_temp_bytes(oid)
描述：返回当前实例上指定数据库中创建临时文件的字节数。
返回值类型：bigint
#### pg_stat_get_db_total_temp_bytes(oid)
描述：在CN上执行该函数，返回集群中所有DN上指定数据库中创建临时文件的总字节数。在DN上执行该函数，返回当前实例上指定数据库中创建临时文件的字节数。
返回值类型：bigint
#### pg_stat_get_db_blk_read_time(oid)
描述：返回当前实例上指定数据库中读数据块所用的时间。
返回值类型：double
#### pg_stat_get_db_total_blk_read_time(oid)
描述：在CN上执行该函数，返回集群中所有DN上指定数据库中读数据块所用的总时间。在DN上执行该函数，返回当前实例上指定数据库中读数据块所用的时间。
返回值类型：double
#### pg_stat_get_db_blk_write_time(oid)
描述：返回当前实例上指定数据库中写数据块所用的时间。
返回值类型：double
#### pg_stat_get_db_total_blk_write_time(oid)
描述：在CN上执行该函数，返回集群中所有DN上指定数据库中写数据块所用的总时间。在DN上执行该函数，返回当前实例上指定数据库中写数据块所用的时间。
返回值类型：double
#### pg_stat_get_numscans(oid)
描述：如果参数是一个表，则顺序扫描读取的行数目。
如果参数是一个索引，则返回索引行的数目。
返回值类型：bigint
 #### pg_stat_get_tuple()
描述：在CN和DN上均可以执行，该函数仅8.1.3及以上集群版本支持。
函数无参时，查询CN上所有系统表的统计信息及表在每个CN上的脏页率，查询DN上所有系统表和用户表的统计信息和表在每个DN上的脏页率；
函数带入参时，入参是schema和表名，带入参的函数执行时查询单张表的统计信息和脏页率。
![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
该函数的统计信息依赖于ANALYZE，为获取最准确的信息请先对表进行ANALYZE。
返回值类型：record
函数返回字段如下：
| 名称                | 类型                       | 描述                                                                                                                                       |
|:---|:---|:---|
| nodename          | text                     | 节点名。                                                                                                                                     |
| tableid           | oid                      | 表的OID。                                                                                                                                   |
| partid            | oid                      | 分区表的分区OID。                                                                                                                               |
| last_vacuum       | timestamp with time zone | 最后一次手动vacuum时间。                                                                                                                          |
| last_autovacuum   | timestamp with time zone | 最后一次autovacuum时间。                                                                                                                        |
| last_analyze      | timestamp with time zone | 最后一次手动analyze时间。                                                                                                                         |
| last_autoanalyze  | timestamp with time zone | 最后一次autoanalyze时间。                                                                                                                       |
| vacuum_count      | bigint                   | vacuum次数。                                                                                                                                |
| autovacuum_count  | bigint                   | autovacuum次数。                                                                                                                            |
| analyze_count     | bigint                   | analyze次数。                                                                                                                               |
| autoanalyze_count | bigint                   | 自动分析的次数。                                                                                                                                 |
| n_tup_ins         | bigint                   | 插入的行数。                                                                                                                                   |
| n_tup_upd         | bigint                   | 更新的行数。                                                                                                                                   |
| n_tup_del         | bigint                   | 删除的行数。                                                                                                                                   |
| n_tup_hot_upd     | bigint                   | HOT更新的行数。                                                                                                                                |
| n_tup_change      | bigint                   | analyze之后改变的行数。                                                                                                                          |
| n_live_tup        | bigint                   | live行估计数。                                                                                                                                |
| n_dead_tup        | bigint                   | dead行估计数。                                                                                                                                |
| dirty_rate        | bigint                   | 单节点的脏页率（单CN或单DN级）。                                                                                                                       |
| last_data_changed | timestamp with time zone | 记录表最后一次数据变化的时间。该字段在8.2.0及以上版本固定为空，建议通过[pg_stat_get_last_data_changed_time(oid)]查询。 |
   
#### pg_stat_get_tuples_returned(oid)
描述：如果参数是一个表，则顺序扫描读取的行数目。
如果参数是一个索引，则返回的索引行的数目。
返回值类型：bigint
#### pg_stat_get_tuples_fetched(oid)
描述：如果参数是一个表，则位图扫描抓取的行数目。
如果参数是一个索引，则用简单索引扫描抓取的行数目。
返回值类型：bigint
#### pg_stat_get_tuples_inserted(oid)
描述：插入表中行的数量。
返回值类型：bigint
#### pg_stat_get_local_tuples_inserted(oid)
描述：当前节点上插入表中行的数量，该函数仅8.1.2及以上版本支持。
返回值类型：bigint
#### pg_stat_get_tuples_updated(oid)
描述：在表中已更新行的数量。
返回值类型：bigint
#### pg_stat_get_local_tuples_updated(oid)
描述：当前节点上在表中已更新行的数量，该函数仅8.1.2及以上版本支持。
返回值类型：bigint
#### pg_stat_get_tuples_deleted(oid)
描述：从表中删除行的数量。
返回值类型：bigint
#### pg_stat_get_local_tuples_deleted(oid)
描述：当前节点上从表中删除行的数量，该函数仅8.1.2及以上版本支持。
返回值类型：bigint
#### pg_stat_get_tuples_changed(oid)
描述：在CN上查询该函数，返回该表自上一次analyze或autoanalyze之后插入、更新、删除行的总数量。在DN上查询该函数，返回该表在当前节点上自上一次analyze或autoanalyze之后插入、更新、删除行的总数量。
返回值类型：bigint
#### pg_stat_get_local_tuples_changed(oid)
描述：该表在当前节点上自从上一次analyze或autoanalyze之后插入、更新、删除行的数量。
返回值类型：bigint
#### pg_stat_get_tuples_hot_updated(oid)
描述：表热更新的行数。
返回值类型：bigint
#### pg_stat_get_local_tuples_hot_updated(oid)
描述：当前节点上表热更新的行数，该函数仅8.1.2及以上版本支持。
返回值类型：bigint
#### pg_stat_get_live_tuples(oid)
描述：表的活元组数。
返回值类型：bigint
#### pg_stat_get_local_live_tuples(oid)
描述：当前节点上表的活元组数，该函数仅8.1.2及以上版本支持。
返回值类型：bigint
#### pg_stat_get_dead_tuples(oid)
描述：表的死元组数。
返回值类型：bigint
#### pg_stat_get_local_dead_tuples(oid)
描述：当前节点上表的死元组数，该函数仅8.1.2及以上版本支持。
返回值类型：bigint
#### pg_stat_get_blocks_fetched(oid)
描述：表或者索引的磁盘块抓取请求的数量。
返回值类型：bigint
#### pg_stat_get_blocks_hit(oid)
描述：在缓冲区中找到的表或者索引的磁盘块请求数目。
返回值类型：bigint
#### pg_stat_get_partition_tuples_inserted(oid)
描述：插入相应表分区中行的数量。
返回值类型：bigint
#### pg_stat_get_partition_tuples_updated(oid)
描述：在相应表分区中已更新行的数量。
返回值类型：bigint
#### pg_stat_get_partition_tuples_deleted(oid)
描述：从相应表分区中删除行的数量。
返回值类型：bigint
#### pg_stat_get_partition_tuples_changed(oid)
描述：该表分区上一次analyze或autoanalyze之后插入、更新、删除行的总数量。
返回值类型：bigint
#### pg_stat_get_partition_live_tuples(oid)
描述：表分区的活行数。
返回值类型：bigint
#### pg_stat_get_partition_dead_tuples(oid)
描述：表分区的死行数。
返回值类型：bigint
#### pg_stat_get_xact_tuples_inserted(oid)
描述：表相关的活跃子事务中插入的tuple数。
返回值类型：bigint
#### pg_stat_get_xact_tuples_deleted(oid)
描述：表相关的活跃子事务中删除的tuple数。
返回值类型：bigint
#### pg_stat_get_xact_tuples_hot_updated(oid)
描述：表相关的活跃子事务中热更新的tuple数。
返回值类型：bigint
#### pg_stat_get_xact_tuples_updated(oid)
描述：表相关的活跃子事务中更新的tuple数。
返回值类型：bigint
#### pg_stat_get_xact_partition_tuples_inserted(oid)
描述：表分区相关的活跃子事务中插入的tuple数。
返回值类型：bigint
#### pg_stat_get_xact_partition_tuples_deleted(oid)
描述：表分区相关的活跃子事务中删除的tuple数。
返回值类型：bigint
#### pg_stat_get_xact_partition_tuples_hot_updated(oid)
描述：表分区相关的活跃子事务中热更新的tuple数。
返回值类型：bigint
#### pg_stat_get_xact_partition_tuples_updated(oid)
描述：表分区相关的活跃子事务中更新的tuple数。
返回值类型：bigint
#### pg_stat_get_last_vacuum_time(oid)
描述：用户在该表上最后一次手动启动清理或者autovacuum线程启动清理的时间。
返回值类型：timestamptz
#### pg_stat_get_last_autovacuum_time(oid)
描述：autovacuum守护线程在该表上最后一次启动清理的时间。
返回值类型：timestamptz
#### pg_stat_get_local_last_autovacuum_time(oid)
描述：当前节点的autovacuum守护线程在该表上最后一次启动清理的时间，该函数仅8.1.2及以上版本支持。
返回值类型：timestamptz
#### pg_stat_get_vacuum_count(oid)
描述：用户在该表上手动启动清理的次数。
返回值类型：bigint
#### pg_stat_get_autovacuum_count(oid)
描述：autovacuum守护线程在该表上启动清理的次数。
返回值类型：bigint
#### pg_stat_get_local_autovacuum_count(oid)
描述：当前节点上的autovacuum守护线程在该表上启动清理的次数，该函数仅8.1.2及以上版本支持。
返回值类型：bigint
#### pg_stat_get_last_analyze_time(oid)
描述：用户在该表上最后一次手动启动分析或者autovacuum线程启动分析的时间。
返回值类型：timestamptz
#### pg_stat_get_last_autoanalyze_time(oid)
描述：autovacuum守护线程在该表上最后一次启动分析的时间。
返回值类型：timestamptz
#### pg_stat_get_local_last_autoanalyze_time(oid)
描述：当前节点的autovacuum守护线程在该表上最后一次启动分析的时间，该函数仅8.1.2及以上版本支持。
返回值类型：timestamptz
#### pg_stat_get_analyze_count(oid)
描述：用户在该表上手动启动分析的次数。
返回值类型：bigint
#### pg_stat_get_autoanalyze_count(oid)
描述：autovacuum守护线程在该表上启动分析的次数。
返回值类型：bigint
#### pg_stat_get_local_autoanalyze_count(oid)
描述：当前节点的autovacuum守护线程在该表上启动分析的次数，该函数仅8.1.2及以上版本支持。
返回值类型：bigint
#### pg_stat_get_local_analyze_status(oid)
描述：指定表在当前节点上的是否需要analyze的状态，仅在CN端有意义。该函数仅8.1.2及以上版本支持。
- 如果该表的修改行数超过analyze的阈值（根据autovacuum_analyze_threshold + autovacuum_analyze_scale_factor \* reltuples计算，其中reltuples是pg_class中记录的表的估算行数），则返回"Analyze needed"。
- 如果该表的修改行数不超过analyze的阈值，则返回"Analyze not needed"。
返回值类型：text
#### pg_stat_get_runtime_relstats(oid)
描述：返回轻量化autoanalyze生成的内存表级统计信息。
返回值类型：setof record
#### pg_stat_get_runtime_attstats(oid)
描述：返回轻量化autoanalyze生成的内存表列级统计信息。
返回值类型：setof record
#### pg_stat_get_runtime_partstats(oid)
描述：返回轻量化autoanalyze生成的内存分区级统计信息。仅8.2.1.200及以上集群版本支持。
返回值类型：setof record
#### pg_stat_get_runtime_part_attstats(oid)
描述：返回轻量化autoanalyze生成的内存分区列级统计信息。仅8.2.1.200及以上集群版本支持。
返回值类型：setof record
#### pg_stat_get_runtime_exprstats(oid)
描述：返回轻量化autoanalyze生成的内存表达式统计信息。仅8.2.1.200及以上集群版本支持。
返回值类型：setof record
#### pg_stat_get_predicate_columns(oid)
描述：返回表收集到的谓词列信息。仅9.1.0.100及以上集群版本支持。
返回值类型：setof smallint
#### pg_stat_delete_predicate_columns(oid)
描述：清空表的谓词列信息。仅9.1.0.100及以上集群版本支持。
返回值类型：void
#### pg_total_autovac_tuples(bool)
描述：返回total autovacuum相关的tuple记录。例如，nodename、nspname、relname以及各类tuple的IUD信息。
返回值类型：setof record
#### pg_autovac_status(oid)
描述：返回和autovacuum状态相关的参数信息。例如，nodename、nspname、relname、analyze及vacuum设置，analyze/vacuum阈值，analyze/vacuum tuple数等。
返回值类型：setof record
#### pg_autovac_timeout(oid)
描述：返回某个表执行autovacuum连续超时的次数，表信息非法或node信息异常返回NULL。
返回值类型：bigint
#### pg_autovac_coordinator(oid)
描述：返回对某个表执行autovacuum的coordinator名字，表信息非法或node信息异常返回NULL。
返回值类型：text
#### pg_stat_get_all(regclass)
描述：返回表在当前CN上pg_stat_object中对应的tuple记录。入参为表的oid。8.2.1.210及以上集群版本支持。
返回值类型：setof record
示例：查询当前节点public模式下t1表的最近一次访问时间。
```
SELECT data_access_timestamp FROM pg_stat_get_all('public.t1'::regclass);
data_access_timestamp
-------------------------------
2024-06-27 16:16:26.643132+08
(1 row)
```
#### pgxc_stat_get_all(relnamespace text, relname text)
描述：返回表在所有CN上pg_stat_object中对应的tuple记录。8.2.1.210及以上集群版本支持。
返回值类型：setof record
示例：查询所有CN上public模式下t1表的最近一次访问时间。
```
SELECT relid,data_access_timestamp FROM pgxc_stat_get_all('public','t1');
 relid     | data_access_timestamp
-----------+-------------------------------
2147516676 | 2000-01-01 08:00:00+08
2147516674 | 2000-01-01 08:00:00+08
2147516655 | 2024-06-27 16:16:26.643132+08
(3 rows)
```
#### pgxc_stat_get_last_data_access_timestamp(relnamespace text, relname text)
描述：返回指定表在所有节点中最近一次的访问时间。9.1.0.100及以上集群版本支持。
返回值类型：timestamptz
示例：查询所有节点上public模式下t1表的最近一次访问时间。
```
SELECT * FROM pgxc_stat_get_last_data_access_timestamp('public','t1');
pgxc_stat_get_last_data_access_timestamp
------------------------------------------
2024-06-27 16:16:26.643132+08
(1 row)
```
#### pgxc_stat_flush_object_data()
描述：手动执行持久化，每个节点将本地所有库中的所有表的统计信息写入pg_stat_object系统表。统计信息包括pg_stat_object中从databaseid到autovac_vacuum_count共29个字段。只有系统管理员可以执行此函数。9.1.0.100及以上集群版本支持。
返回值类型：boolean
示例：系统管理员用户执行持久化。
```
SELECT pgxc_stat_flush_object_data();
pgxc_stat_flush_object_data
-----------------------------
t
(1 row)
```
![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
此函数不支持并发执行。
#### pgxc_get_wlm_session_info_bytime(text, timestamp without time zone, timestamp without time zone, int)
描述：PGXC_WLM_SESSION_INFO视图在统计数据量很大的场景中性能较差，建议使用该函数进行筛选查询。入参分别为：筛选时间列（'start_time', 'finish_time'），起始区间时间，结束区间时间，每个CN返回的最大数量。返回值为GS_WLM_SESSION_HISTORY。
返回值类型：setof record
#### pgxc_get_wlm_current_instance_info(text, int default null)
描述：在CN节点上查询集群各节点当前的资源使用情况，读取内存中还未存到GS_WLM_INSTANCE_HISTORY系统表的数据。入参分别为：节点名称(可以输入ALL、C、D、实例名称)，每个节点返回的最大数量。返回值为GS_WLM_INSTANCE_HISTORY。
返回值类型：setof record
#### pgxc_get_wlm_history_instance_info(text, TIMESTAMP, TIMESTAMP, int default null)
描述：在CN节点上查询集群各节点历史资源使用情况，读取GS_WLM_INSTANCE_HISTORY系统表的数据。入参分别为：节点名称(可以输入ALL、C、D、实例名称)，起始区间时间，结束区间时间，每个实例返回的最大数量。返回值为GS_WLM_INSTANCE_HISTORY。
返回值类型：setof record
 #### pg_stat_get_last_data_changed_time(oid)
描述：insert/update/delete, exchange/truncate/drop partition在该表上最后一次操作的时间，PG_STAT_ALL_TABLES视图last_data_changed列的数据是通过该函数求值，在表数量很大的场景中，通过视图获取表数据最后修改时间的性能较差，建议直接使用该函数获取表数据的最后修改时间。
返回值类型：timestamptz
#### pg_stat_set_last_data_changed_time(oid)
描述：手动设置该表上最后一次insert/update/delete, exchange/truncate/drop partition操作的时间。
返回值类型：void
#### pg_stat_set_last_data_changed_num(oid)
描述：设置该表上当前节点的历史累计修改计数。
返回值类型：void
#### pv_session_time()
描述：统计当前节点各会话线程的运行时间信息及各执行阶段所消耗时间。
返回值类型：record
#### pv_instance_time()
描述：统计当前节点的运行时间信息及各执行阶段所消耗时间。
返回值类型：record
#### pg_stat_get_activity(integer)
描述：返回一个关于带有特殊PID的后台进程的记录信息，当参数为NULL时，则返回每个活动的后台进程的记录。返回结果是PG_STAT_ACTIVITY视图中的一个子集，不包含connection_info列。
返回值类型：setof record
#### pg_stat_get_activity_with_conninfo(integer)
描述：返回一个关于带有特殊PID的后台进程的记录信息，当参数为NULL时，则返回每个活动的后台进程的记录。返回结果是PG_STAT_ACTIVITY视图中的一个子集。
返回值类型：setof record
#### pg_user_iostat(text)
描述：该函数8.1.2版本中已废弃，当前版本查询无效。8.2.0及以上集群版本中可使用PGXC_TOTAL_USER_RESOURCE_INFO视图查询实例上用户实时资源消耗信息。
返回值类型：record
| 名称            | 类型   | 描述                     |
|:---|:---|:---|
| userid        | oid  | 用户ID。                  |
| min_curr_iops | int4 | 当前该用户io在各DN中的最小值。      |
| max_curr_iops | int4 | 当前该用户io在各DN中的最大值。      |
| min_peak_iops | int4 | 该用户io峰值中，各DN的最小值。      |
| max_peak_iops | int4 | 该用户io峰值中，各DN的最大值。      |
| io_limits     | int4 | 用户指定的资源池所设置的io_limits。 |
| io_priority   | text | 该用户所设io_priority。      |
   
#### pg_stat_get_function_calls(oid)
描述：函数已被调用次数。
返回值类型：bigint
#### pg_stat_get_function_total_time(oid)
描述：该函数花费的总挂钟时间，以微秒为单位。包括花费在此函数调用上的时间。
返回值类型：double precision
#### pg_stat_get_function_self_time(oid)
描述：在当前事务中仅花费在此函数上的时间。不包括花费在调用函数上的时间。
返回值类型：double precision
#### pg_stat_get_backend_idset()
描述：设置当前活动的服务器进程数（从1到活动服务器进程的数量）。
返回值类型：setofinteger
#### pg_stat_get_backend_pid(integer)
描述：给定的服务器线程的线程ID。
返回值类型：bigint
```
SELECT pg_stat_get_backend_pid(1);
 pg_stat_get_backend_pid 
-------------------------
         139706243217168
(1 row)
```
#### pg_stat_get_backend_dbid(integer)
描述：连接到给定服务器进程的数据库ID。
返回值类型：oid
#### pg_stat_get_backend_userid(integer)
描述：给定的服务器进程的用户ID。
返回值类型：oid
#### pg_stat_get_backend_activity(integer)
描述：给定服务器进程的当前活动查询，仅在调用者是系统管理员或被查询会话的用户，并且打开track_activities的时候才能获得结果。
返回值类型：text
#### pg_stat_get_backend_waiting(integer)
描述：如果给定服务器进程在等待某个锁，并且调用者是系统管理员或被查询会话的用户，并且打开track_activities的时候才返回真。
返回值类型：boolean
#### pg_stat_get_backend_activity_start(integer)
描述：给定服务器进程当前正在执行的查询的起始时间，仅在调用者是系统管理员或被查询会话的用户，并且打开track_activities的时候才能获得结果。
返回值类型：timestampwithtimezone
#### pg_stat_get_backend_xact_start(integer)
描述：给定服务器进程当前正在执行的事务的开始时间，但只有当前用户是系统管理员或被查询会话的用户，并且打开track_activities的时候才能获得结果。
返回值类型：timestampwithtimezone
#### pg_stat_get_backend_start(integer)
描述：给定服务器进程启动的时间，如果当前用户不是系统管理员或被查询的后端的用户，则返回NULL。
返回值类型：timestampwithtimezone
#### pg_stat_get_backend_client_addr(integer)
描述：连接到给定客户端后端的IP地址。
如果是通过Unix域套接字连接的则返回NULL；如果当前用户不是系统管理员或被查询会话的用户，也返回NULL。
返回值类型：inet
备注：该函数中IP地址作为入参时，需写为不带圆点的格式，例如，192.168.100.128写为192168100128。
#### pg_stat_get_backend_client_port(integer)
描述：连接到给定客户端后端的TCP端口。
如果是通过Unix域套接字连接的则返回-1；如果当前用户不是系统管理员或被查询会话的用户，也返回NULL。
返回值类型：integer
#### pg_stat_get_bgwriter_timed_checkpoints()
描述：后台写进程开启定时检查点的时间（因为checkpoint_timeout时间已经过期了）。
返回值类型：bigint
#### pg_stat_get_bgwriter_requested_checkpoints()
描述：后台写进程开启基于后端请求的检查点的时间，因为已经超过了checkpoint_segments或因为已经执行了CHECKPOINT。
返回值类型：bigint
#### pg_stat_get_bgwriter_buf_written_checkpoints()
描述：在检查点期间后台写进程写入的缓冲区数目。
返回值类型：bigint
#### pg_stat_get_bgwriter_buf_written_clean()
描述：为日常清理脏块，后台写进程写入的缓冲区数目。
返回值类型：bigint
#### pg_stat_get_bgwriter_maxwritten_clean()
描述：后台写进程停止清理扫描的时间，因为已经写入了更多的缓冲区（相比bgwriter_lru_maxpages参数声明的缓冲区数）。
返回值类型：bigint
#### pg_stat_get_buf_written_backend()
描述：后端进程写入的缓冲区数，因为它们需要分配一个新的缓冲区。
返回值类型：bigint
#### pg_stat_get_buf_alloc()
描述：分配的总缓冲区数。
返回值类型：bigint
#### pg_stat_clear_snapshot()
描述：清理当前的统计快照。
返回值类型：void
#### pg_stat_reset()
描述：为当前数据库重置统计计数器为0（需要系统管理员权限）。
返回值类型：void
#### pg_stat_reset_shared(text)
描述：重置shared cluster每个节点当前数据统计计数器为0（需要系统管理员权限）。
返回值类型：void
#### pg_stat_reset_single_table_counters(oid)
描述：为当前数据库中的一个表或索引重置统计为0（需要系统管理员权限）。
返回值类型：void
#### pg_stat_reset_single_function_counters(oid)
描述：为当前数据库中的一个函数重置统计为0（需要系统管理员权限）。
返回值类型：void
#### pg_stat_session_cu(int, int, int)
描述：获取当前节点所运行session的CU命中统计信息。
返回值类型：record
#### gs_get_stat_session_cu(text, int, int, int)
描述：获取集群所有运行session的CU命中统计信息。
返回值类型：record
#### gs_get_stat_db_cu(text, text, bigint, bigint, bigint)
描述：获取集群一个数据库的CU命中统计信息。
返回值类型：record
#### pg_stat_get_cu_mem_hit(oid)
描述：获取当前节点当前数据库中一个列存表的CU内存命中次数。
返回值类型：bigint
#### pg_stat_get_cu_hdd_sync(oid)
描述：获取当前节点当前数据库中一个列存表从磁盘同步读取CU次数。
返回值类型：bigint
#### pg_stat_get_cu_hdd_asyn(oid)
描述：获取当前节点当前数据库中一个列存表从磁盘异步读取CU次数。
返回值类型：bigint
#### pg_stat_get_db_cu_mem_hit(oid)
描述：获取当前节点一个数据库CU内存命中次数。
返回值类型：bigint
#### pg_stat_get_db_cu_hdd_sync(oid)
描述：获取当前节点一个数据库从磁盘同步读取CU次数。
返回值类型：bigint
#### pg_stat_get_db_cu_hdd_asyn(oid)
描述：获取当前节点一个数据库从磁盘异步读取CU次数。
返回值类型：bigint
#### pgxc_fenced_udf_process()
描述：查看UDF Master和Work进程数。
返回值类型：record
#### pgxc_terminate_all_fenced_udf_process()
描述：终止所有的UDF Work进程。
返回值类型：bool
#### gs_all_nodegroup_control_group_info(text)
描述：提供了所有逻辑集群的控制组信息。该函数在调用的时候需要指定要查询逻辑集群的名称。例如要查询'installation'逻辑集群的控制组信息：
```
SELECT * FROM gs_all_nodegroup_control_group_info('installation');
```
返回值类型：record
函数返回字段如下：
| 名称       | 类型     | 描述                     |
|:---|:---|:---|
| name     | text   | 控制组的名称。                |
| type     | text   | 控制组的类型。                |
| gid      | bigint | 控制组ID。                 |
| classgid | bigint | Workload所属Class的控制组ID。 |
| class    | text   | Class控制组。              |
| workload | text   | Workload控制组。           |
| shares   | bigint | 控制组分配的CPU资源配额。         |
| limits   | bigint | 控制组分配的CPU资源限额。         |
| wdlevel  | bigint | Workload控制组层级。         |
| cpucores | text   | 控制组使用的CPU核的信息。         |
   
#### gs_get_nodegroup_tablecount(name)
描述：得到一个逻辑集群中所有数据库包含的用户表数目。
返回值类型：integer
#### pgxc_max_datanode_size(name)
描述：得到一个逻辑集群的所有DN节点中数据库文件占用磁盘空间的最大值，单位为字节。
返回值类型：bigint
#### gs_check_logic_cluster_consistency()
描述：检查当前系统中所有逻辑集群是否存在系统信息不一致的情况，如果返回空记录，表示不存在不一致情况；否则，逻辑集群中CN和DN上的NodeGroup信息存在不一致。该函数应该在非扩缩容重分布时调用。
返回值类型：record
#### gs_check_tables_distribution()
描述： 检查当前系统中用户表的分布是否存在不一致，如果返回空记录，表示不存在不一致。该函数应该在非扩缩容重分布时调用。
返回值类型：record
#### pg_stat_bad_block(text, int, int, int, int, int, timestamp with time zone, timestamp with time zone)
描述：获取当前节点自启动后，读取出现Page/CU的损坏信息。
返回值类型：record
#### pgxc_stat_bad_block(text, int, int, int, int, int, timestamp with time zone, timestamp with time zone)
描述：获取集群所有节点自启动后，读取出现Page/CU的损坏信息。
返回值类型：record
#### pg_stat_bad_block_clear()
描述：清理节点记录的读取出现的Page/CU损坏信息（需要系统管理员权限）。
返回值类型：void
#### pgxc_stat_bad_block_clear()
描述：清理集群所有节点记录的读取出现的Page/CU损坏信息（需要系统管理员权限）。
返回值类型：void
#### gs_respool_exception_info(pool text)
描述：查看某个资源池关联的查询规则信息。
返回值类型：record
#### gs_control_group_info(pool text)
描述：查看资源池关联的控制组信息
返回值类型：record
返回信息如下：
| 属性       | 属性值                 | 描述                                 |
|:---|:---|:---|
| name     | class_a:workload_a1 | class和workload名称。                  |
| class    | class_a             | Class控制组名称。                        |
| workload | workload_a1         | Workload控制组名称。                     |
| type     | DEFWD               | 控制组类型（Top、CLASS、BAKWD、DEFWD、TSWD）。 |
| gid      | 87                  | 控制组ID。                             |
| shares   | 30                  | 占父节点CPU资源的百分比。                     |
| limits   | 0                   | 占父节点CPU核数的百分比。                     |
| rate     | 0                   | Timeshare中的分配比例。                   |
| cpucores | 0-3                 | CPU核心数。                            |
   
#### gs_wlm_user_resource_info(name text)
描述：查询具体某个用户的资源限额和资源使用情况。
返回值类型：record
#### pgxc_stat_single_table(schema, tablename)
描述：在CN上执行，入参为schema和表名。查询单张表在全库中的统计信息及该表在每个DN上的脏页率。
该函数仅8.1.3及以上集群版本支持。
![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
该函数的统计信息依赖于ANALYZE，为获取该表最准确的信息请先对表进行ANALYZE。
返回值类型：record
返回值字段与函数[pg_stat_get_tuple()]相同。
```
SELECT * FROM pgxc_stat_single_table('public','t1');
 nodename  | tableid | partid |      last_vacuum       |    last_autovacuum     |         last_analyze          |    last_autoanalyze    | vacuum_count | autovacuum_count | analyze_count | autoanalyze_count | n_tup_ins | n_
tup_upd | n_tup_del | n_tup_hot_upd | n_tup_change | n_live_tup | n_dead_tup | dirty_rate | last_data_changed
-----------+---------+--------+------------------------+------------------------+-------------------------------+------------------------+--------------+------------------+---------------+-------------------+-----------+---
--------+-----------+---------------+--------------+------------+------------+------------+-------------------
 datanode1 | 1270075 |        | 2000-01-01 08:00:00+08 | 2000-01-01 08:00:00+08 | 2023-01-09 09:38:43.220876+08 | 2000-01-01 08:00:00+08 |            0 |                0 |             1 |                 0 |         0 |
      0 |         0 |             0 |            0 |          0 |          0 |          0 |
(1 row)
```
#### pgxc_stat_wal_write()
描述：在所有CN上执行，记录各个DN上与CN交互的线程信息，并统计wal日志和数据页导入量及速率。该函数仅8.2.0及以上集群版本支持。
返回值类型：bigint
返回值字段：
- node_name：实例名。
- application_name：应用名。
- query_start：当前正在执行语句的起始时间。
- datapage_write：当前query导入的数据页总量，单位为bytes。
- datapage_write_speed：数据页导入速率，单位为bytes/s。
- wal_write：当前query导入的wal日志总量，单位为bytes。
- wal_write_speed：wal导入速率，单位为bytes/s。
- total_datapage_write：当前线程产生数据页总量，单位为bytes。
- total_wal_write：wal总量，单位为bytes。
 
```
SELECT * FROM pgxc_stat_wal_write();
 node_name | datid |       pid       | lwtid | usesysid |    application_name    | state  |          query_start          |         backend_start         |     query_id      | datapage_write | datapage_write_speed | wal_write | wal_write_speed | total_datapage_write | total_wal_write
-----------+-------+-----------------+-------+----------+------------------------+--------+-------------------------------+-------------------------------+-------------------+----------------+----------------------+-----------+-----------------+----------------------+-----------------
 datanode1 | 15979 | 140328473442048 | 12408 |       10 | CalculateSpaceInfo     | active | 2022-11-15 10:39:45.00219+08  | 2022-11-15 10:39:45.000918+08 |                 0 |              0 |                    0 |     70697 |               0 |                    0 |               0
 datanode1 |     0 | 140328075503360 | 12510 |       10 | WalSender to Secondary | idle   |                               | 2022-11-15 10:39:46.708557+08 |                 0 |              0 |                      |       210 |               0 |                    0 |               0
 datanode1 | 15979 | 140327896741632 | 13612 |       10 | coordinator1           | active | 2022-11-15 10:46:32.832548+08 | 2022-11-15 10:40:20.117516+08 | 72620543991349940 |      586579968 |             17425000 |  11743056 |          348000 |           5337505792 |       107245825
 datanode1 | 15979 | 140327583217408 | 13614 |       10 | coordinator1           | active | 2022-11-15 10:46:32.832548+08 |                               | 72620543991349940 |              0 |                    0 |         0 |               0 |                    0 |               0
 datanode1 | 15979 | 140327485175552 | 27914 |       10 | coordinator1           | active | 2022-11-15 10:47:06.493584+08 | 2022-11-15 10:47:06.489062+08 | 72620543991350020 |              0 |                    0 |         0 |               0 |                    0 |            8675
(5 rows)
```
![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
行存不带索引批量导入时，数据页copy导入会产生logical newpage相关的xlog日志，在xlog量大于默认值时同样会触发流控。
#### pg_stat_wal_write()
描述：在CN或者DN上执行，记录当前实例的线程信息，并统计wal日志和数据页导入量及速率，这里以CN为例。
该函数仅8.2.0及以上集群版本支持。
返回值类型：bigint
返回值字段：
- node_name：实例名。
- application_name：应用名。
- query_start：当前正在执行语句的起始时间。
- datapage_write：当前query导入的数据页总量，单位为bytes。
- datapage_write_speed：数据页导入速率，单位为bytes/s。
- wal_write：当前query导入的wal日志总量，单位为bytes。
- wal_write_speed：wal导入速率，单位为bytes/s。
- total_datapage_write：当前线程产生数据页总量，单位为bytes。
- total_wal_write：wal总量，单位为bytes。
 
```
SELECT * FROM pg_stat_wal_write();
  node_name   | datid |       pid       | lwtid | usesysid |  application_name  | state  |          query_start          |         backend_start         |     query_id      | datapage_write | datapage_write_speed | wal_write | wal_write_speed | total_datapage_write | total_wal_write
--------------+-------+-----------------+-------+----------+--------------------+--------+-------------------------------+-------------------------------+-------------------+----------------+----------------------+-----------+-----------------+----------------------+-----------------
 coordinator1 | 15979 | 140234153498368 | 25353 |       10 | JobScheduler       | active |                               | 2022-11-15 11:57:54.396347+08 |                 0 |              0 |                      |         0 |               0 |                    0 |               0
 coordinator1 | 15979 | 140234132027136 | 25354 |       10 | StatCollector      | idle   |                               |                               |                 0 |              0 |                      |         0 |               0 |                    0 |               0
 coordinator1 | 15979 | 140234090084096 | 25356 |       10 | WDRSnapshot        | idle   | 2022-11-15 11:57:54.388948+08 | 2022-11-15 11:57:54.403055+08 |                 0 |              0 |                    0 |         0 |               0 |                    0 |               0
 coordinator1 | 15979 | 140234027169536 | 25359 |       10 | workload           | active | 2022-11-15 11:57:54.404836+08 | 2022-11-15 11:57:54.389259+08 | 72620543991404472 |              0 |                    0 |   1722112 |               0 |                    0 |               0
 coordinator1 | 15979 | 140234004621056 | 25360 |       10 | CalculateSpaceInfo | active | 2022-11-15 11:57:54.405677+08 | 2022-11-15 11:57:54.389847+08 | 72620543991349266 |              0 |                    0 |    191326 |               0 |                    0 |               0
 coordinator1 | 15979 | 140233987839744 | 25361 |       10 | WorkloadMonitor    | active | 2022-11-15 11:57:54.406263+08 | 2022-11-15 11:57:54.390373+08 | 72620543991404418 |              0 |                    0 |   1183741 |               0 |                    0 |               0
 coordinator1 | 15979 | 140233971058432 | 25362 |       10 | WLMArbiter         | active | 2022-11-15 11:57:54.406367+08 | 2022-11-15 11:57:54.390947+08 |                 0 |              0 |                    0 |         0 |               0 |                    0 |               0
 coordinator1 | 15979 | 140233228666624 | 14415 |       10 | gsql               | active | 2022-11-15 21:19:32.200305+08 | 2022-11-15 21:09:38.916931+08 | 72620543991404422 |              0 |                    0 |     30872 |            1000 |                    0 |               0
 coordinator1 | 15979 | 140233172035328 | 15516 |       10 | gsql               | active | 2022-11-15 21:19:49.7877+08   | 2022-11-15 21:10:13.447312+08 | 72620543991404485 |              0 |                    0 |         0 |               0 |                    0 |               0
 coordinator1 |     0 | 140234245269248 | 25348 |        0 | Background writer  | idle   |                               | 2022-11-15 11:57:54.383651+08 |                 0 |              0 |                      |         0 |               0 |                    0 |               0
 coordinator1 |     0 | 140234291410688 | 25347 |        0 | CheckPointer       | idle   |                               | 2022-11-15 11:57:54.383231+08 |                 0 |              0 |                      |         0 |               0 |                    0 |               0
 coordinator1 |     0 | 140234228487936 | 25349 |        0 | Wal Writer         | idle   |                               | 2022-11-15 11:57:54.384069+08 |                 0 |              0 |                      |         0 |               0 |                    0 |               0
 coordinator1 |     0 | 140234068584192 | 25357 |        0 | TwoPhase Cleaner   | idle   |                               | 2022-11-15 11:57:54.388332+08 |                 0 |              0 |                      |         0 |               0 |                    0 |               0
 coordinator1 |     0 | 140234048657152 | 25358 |        0 | LWLock Monitor     | idle   |                               | 2022-11-15 11:57:54.389239+08 |                 0 |              0 |                      |         0 |               0 |                    0 |               0
 coordinator1 |     0 | 140234194925312 | 25351 |        0 | CBM Writer         | idle   |                               | 2022-11-15 11:57:54.38506+08  |                 0 |              0 |                      |         0 |               0 |                    0 |               0
 coordinator1 |     0 | 140234211706624 | 25350 |        0 | Tick service       | idle   |                               | 2022-11-15 11:57:54.384136+08 |                 0 |              0 |                      |         0 |               0 |                    0 |               0
(16 rows)
```
![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
行存不带索引批量导入时，数据页copy导入会产生logical newpage相关的xlog日志，在xlog量大于默认值时同样会触发流控。
#### gs_stack()
描述：获取CN或DN进程的堆栈信息，函数入参tid均需要通过视图进行获取，不支持lwtid。该函数仅8.2.1及以上集群版本支持。
gs_stack()提供了比gdb、gstack等命令更灵活的、更快速的堆栈获得手段。仅建议管理员用户在问题分析定位过程中使用，不建议作为日常的监控工具使用。
返回值字段：
- tid：线程id。
- lwtid：轻量级线程id。
- stack：tid或lwtid线程对应的堆栈信息。
 
gs_stack()函数有四种使用方式：
- 方式一：gs_stack(tid)函数入参值为0，表示打印gsql所连接的CN或DN进程内所有线程的堆栈。
  ![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
  - 可通过gsql连接CN或DN执行。
  
  - 获取CN或DN进程内所有线程的运行堆栈，运行时间长，对正常业务运行有影响，不建议频繁使用。
   
  ```
  SELECT * FROM gs_stack(0);
         tid       | lwtid |                                                         stack                                                          
  -----------------+-------+------------------------------------------------------------------------------------------------------------------------
   140186894757888 | 95275 | __poll + 0x2d                                                                                                         +
                   |       | ServerLoop() + 0x457                                                                                                  +
                   |       | PmStartupThreads() + 0x151                                                                                            +
                   |       | PostmasterMain(int, char**) + 0x22a                                                                                   +
                   |       | main + 0x250                                                                                                          +
                   |       | __libc_start_main + 0xf5                                                                                              +
                   |       | 0xb8d2d7                                                                                                              +
                   |       | 
   140185903825152 | 95316 | __poll + 0x2d                                                                                                         +
                   |       | GsWaiter::wait(void*, long) + 0x11a                                                                                   +
                   |       | GsWaiter::wait(void*, int, int, long) + 0x7e                                                                          +
                   |       | SysLoggerMain() + 0x109                                                                                               +
                   |       | SubPostmasterMain(tag_gs_thread_args*) + 0xc9f                                                                        +
                   |       | MainStarterThreadFunc(void*) + 0x6a                                                                                   +
                   |       | ThreadStarterFunc(void*) + 0x66                                                                                       +
                   |       | start_thread + 0xc5                                                                                                   +
                   |       | clone + 0x6d                                                                                                          +
                   |       | 
   140185903825528 | 95317 | __poll + 0x2d                                                                                                         +
                   |       | GsWaiter::wait(void*, long) + 0x11a                                                                                   +
                   |       | AlarmCheckerMain() + 0x21b                                                                                            +
                   |       | SubPostmasterMain(tag_gs_thread_args*) + 0xcc6                                                                        +
                   |       | MainStarterThreadFunc(void*) + 0x6a                                                                                   +
                   |       | ThreadStarterFunc(void*) + 0x66                                                                                       +
                   |       | start_thread + 0xc5                                                                                                   +
                   |       | clone + 0x6d                                                                                                          +
                   |       | 
   140185903825904 | 95320 | __poll + 0x2d                                                                                                         +
                   |       | GsWaiter::wait(void*, long) + 0x11a                                                                                   +
                   |       | ReaperBackendMain() + 0x1ee                                                                                           +
                   |       | SubPostmasterMain(tag_gs_thread_args*) + 0xd6f                                                                        +
                   |       | MainStarterThreadFunc(void*) + 0x6a                                                                                   +
                   |       | ThreadStarterFunc(void*) + 0x66                                                                                       +
                   |       | start_thread + 0xc5                                                                                                   +
                   |       | clone + 0x6d                                                                                                          +
                   |       | 
   140185903826656 | 95324 | __poll + 0x2d                                                                                                         +
                   |       | GsWaiter::wait(void*, long) + 0x11a                                                                                   +
                   |       | CheckpointerMain() + 0x8bb                                                                                            +
                   |       | AuxiliaryThreadUnderPm(AuxProcType) + 0x210                                                                           +
                   |       | SubPostmasterMain(tag_gs_thread_args*) + 0x7e0                                                                        +
                   |       | MainStarterThreadFunc(void*) + 0x6a                                                                                   +
                   |       | ThreadStarterFunc(void*) + 0x66                                                                                       +
                   |       | start_thread + 0xc5                                                                                                   +
                   |       | clone + 0x6d                                                                                                          +
                   |       | 
   140185903827032 | 95325 | __poll + 0x2d                                                                                                         +
                   |       | GsWaiter::wait(void*, long) + 0x11a                                                                                   +
                   |       | BackgroundWriterMain() + 0x541                                                                                        +
                   |       | AuxiliaryThreadUnderPm(AuxProcType) + 0x210                                                                           +
                   |       | SubPostmasterMain(tag_gs_thread_args*) + 0x7e0                                                                        +
                   |       | MainStarterThreadFunc(void*) + 0x6a                                                                                   +
                   |       | ThreadStarterFunc(void*) + 0x66                                                                                       +
  ```
  

- 方式二：gs_stack(tid)函数入参值为指定的tid，表示打印gsql所连接的CN或DN进程内tid线程的堆栈。
  ![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
  - 可通过gsql连接CN或DN执行。
  
  - tid必须为所连CN或DN进程上存在的线程tid，否则会报错"invalid thread id"。
  
  - tid需通过其他视图获取，不支持lwtid。
  
  - 获取指定CN或DN进程内指定线程的运行堆栈，运行时间短，对正常业务运行无影响，推荐使用。
   
  ```
  SELECT * FROM gs_stack(140185903826656);
         tid       | lwtid |                     stack                      
  -----------------+-------+------------------------------------------------
   140185903826656 | 95275 | __poll + 0x2d                                 +
                   |       | GsWaiter::wait(void*, long) + 0x11a           +
                   |       | CheckpointerMain() + 0x8bb                    +
                   |       | AuxiliaryThreadUnderPm(AuxProcType) + 0x210   +
                   |       | SubPostmasterMain(tag_gs_thread_args*) + 0x7e0+
                   |       | MainStarterThreadFunc(void*) + 0x6a           +
                   |       | ThreadStarterFunc(void*) + 0x66               +
                   |       | start_thread + 0xc5                           +
                   |       | clone + 0x6d                                  +
                   |       | 
  (1 row)
  ```
  

- 方式三：gs_stack('nodename', 0)函数第一个参数值为nodename，第二个参数值为0，表示打印由nodename指定的进程内所有线程的堆栈。
  ![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
  - 底层实现使用了"execute direct on"，因此必须使用gsql连接CN上执行。
  
  - 第一个参数nodename需用单引号包括。
  
  - 获取指定CN或DN进程内所有线程的运行堆栈，运行时间长，对正常业务运行有影响，不建议频繁使用。
   
  ```
  SELECT * FROM gs_stack('datanode2', 0);
         tid       | lwtid |                                                         stack                                                          
  -----------------+-------+------------------------------------------------------------------------------------------------------------------------
   140634541242112 | 95442 | do_futex_wait + 0x5f                                                                                                  +
                   |       | __new_sem_wait_slow + 0x57                                                                                            +
                   |       | sem_timedwait + 0x35                                                                                                  +
                   |       | tagBinarySemaphore::timed_wait(int) + 0x4f                                                                            +
                   |       | AuxiliaryThreadMain(void*) + 0x6d                                                                                     +
                   |       | LibcommThreadRoutine(void*) + 0x41                                                                                    +
                   |       | start_thread + 0xc5                                                                                                   +
                   |       | clone + 0x6d                                                                                                          +
                   |       | 
   140634549634816 | 95438 | epoll_wait + 0x33                                                                                                     +
                   |       | LibcommEpollWait(int, int) + 0x38                                                                                     +
                   |       | RecvDataThreadMain(void*) + 0x8e                                                                                      +
                   |       | LibcommThreadRoutine(void*) + 0x41                                                                                    +
                   |       | start_thread + 0xc5                                                                                                   +
                   |       | clone + 0x6d                                                                                                          +
                   |       | 
   140634558027520 | 95432 | epoll_wait + 0x33                                                                                                     +
                   |       | LibcommEpollWait(int, int) + 0x38                                                                                     +
                   |       | RecvDataThreadMain(void*) + 0x8e                                                                                      +
                   |       | LibcommThreadRoutine(void*) + 0x41                                                                                    +
                   |       | start_thread + 0xc5                                                                                                   +
                   |       | clone + 0x6d                                                                                                          +
                   |       | 
   140634566420224 | 95430 | epoll_wait + 0x33                                                                                                     +
                   |       | LibcommEpollWait(int, int) + 0x38                                                                                     +
                   |       | RecvDataThreadMain(void*) + 0x8e                                                                                      +
                   |       | LibcommThreadRoutine(void*) + 0x41                                                                                    +
                   |       | start_thread + 0xc5                                                                                                   +
                   |       | clone + 0x6d                                                                                                          +
                   |       | 
   140634589476608 | 95426 | epoll_wait + 0x33                                                                                                     +
                   |       | LibcommEpollWait(int, int) + 0x38                                                                                     +
                   |       | RecvDataThreadMain(void*) + 0x8e                                                                                      +
                   |       | LibcommThreadRoutine(void*) + 0x41                                                                                    +
                   |       | start_thread + 0xc5                                                                                                   +
                   |       | clone + 0x6d                                                                                                          +
                   |       | 
   140634597869312 | 95424 | do_futex_wait + 0x5f                                                                                                  +
                   |       | __new_sem_wait_slow + 0x57                                                                                            +
                   |       | sem_timedwait + 0x35                                                                                                  +
                   |       | tagBinarySemaphore::timed_wait(int) + 0x4f                                                                            +
                   |       | SendDataWait() + 0x58                                                                                                 +
                   |       | SendDataThreadMain(void*) + 0xe4                                                                                      +
                   |       | LibcommThreadRoutine(void*) + 0x41                                                                                    +
                   |       | start_thread + 0xc5                                                                                                   +
                   |       | clone + 0x6d                                                                                                          +
                   |       | 
   140634606262016 | 95387 | do_futex_wait + 0x5f                                                                                                  +
                   |       | __new_sem_wait_slow + 0x57                                                                                            +
                   |       | sem_timedwait + 0x35                                                                                                  +
                   |       | tagBinarySemaphore::timed_wait(int) + 0x4f                                                                            +
                   |       | SendDataWait() + 0x58                                                                                                 +
                   |       | SendDataThreadMain(void*) + 0xe4                                                                                      +
  ```
  

- 方式四：gs_stack('nodename', 0)函数第一个参数值为nodename，第二个参数值为tid，表示打印由nodename指定的进程内tid线程的堆栈。
  ![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
  - 底层实现使用了"execute direct on"，因此必须gsql连接CN上执行。
  
  - 第一个参数nodename需用单引号包括。
  
  - 第二个参数必须是nodename指定进程内存在的线程，否则会报错"invalid thread id"。
  
  - tid需通过其他视图获取，不支持lwtid。
  
  - 仅获取指定CN或DN进程内指定线程的运行堆栈，运行时间短，对正常业务运行无影响，推荐使用。
   
  ```
  SELECT * FROM gs_stack('datanode2', 140634549634816);
         tid       | lwtid |               stack                
  -----------------+-------+------------------------------------
   140634549634816 | 95438 | epoll_wait + 0x33                 +
                   |       | LibcommEpollWait(int, int) + 0x38 +
                   |       | RecvDataThreadMain(void*) + 0x8e  +
                   |       | LibcommThreadRoutine(void*) + 0x41+
                   |       | start_thread + 0xc5               +
                   |       | clone + 0x6d                      +
                   |       | 
  (1 row)
  ```
  
 
#### pgxc_get_xlog_stats()
描述：在CN上执行，统计各个DN节点自开机到当前不同xlog类型数量。该函数仅8.3.0及以上集群版本支持。
返回值类型：record
返回信息如下：
| 名称            | 类型     | 描述                             |
|:---|:---|:---|
| node_name     | text   | 节点名称。                          |
| rmgr_name     | text   | xlog主类型。                       |
| record_info   | text   | xlog info信息。                   |
| record_count  | bigint | 数量信息。                          |
| count_pct     | text   | 数量占比。                          |
| record_size   | bigint | record大小， 单位byte。              |
| record_pct    | text   | record大小占比。                    |
| fpi_size      | bigint | fpi(full page image)大小，单位byte。 |
| fpi_pct       | text   | fpi大小占比。                       |
| combined_size | bigint | xlog总大小，单位byte。                |
| combined_pct  | text   | xlog总大小占比。                     |
   
![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
- 该函数只统计DN节点最近一次启动以来，不同类型的xlog数量与大小。
- 该函数统计的xlog的大小未考虑到其写盘时的对齐问题，与实际xlog段文件大小存在部分误差。
 
```
SELECT * FROM pgxc_get_xlog_stats();
 node_name |  rmgr_name  |          record_info          | record_count | count_pct | record_size | record_pct | fpi_size | fpi_pct | combined_size | combined
_pct
-----------+-------------+-------------------------------+--------------+-----------+-------------+------------+----------+---------+---------------+---------
-----
 datanode1 | XLOG        | checkpoint: shutdown          |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | XLOG        | checkpoint: online            |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | XLOG        | xlog no-op                    |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | XLOG        | nextOid                       |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | XLOG        | xlog switch                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | XLOG        | backup end                    |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | XLOG        | parameter change              |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | XLOG        | restore point                 |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | XLOG        | full page writes              |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | XLOG        | xlog recovery end             |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | XLOG        | page hint                     |            1 | 0.12%     |          56 | 0.11%      |     8192 | 17.92%  |          8248 | 8.71%
 datanode1 | XLOG        | xlog fpi                      |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Transaction | commit                        |            3 | 0.35%     |         246 | 0.50%      |        0 | 0.00%   |           246 | 0.26%
 datanode1 | Transaction | prepare                       |            1 | 0.12%     |         469 | 0.96%      |        0 | 0.00%   |           469 | 0.50%
 datanode1 | Transaction | abort                         |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Transaction | commit prepared               |            1 | 0.12%     |         106 | 0.22%      |        0 | 0.00%   |           106 | 0.11%
 datanode1 | Transaction | abort prepared                |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Transaction | xid assignment xtop           |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Transaction | commit compact                |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Storage     | file create                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Storage     | file truncate                 |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Storage     | vacuum clear file             |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | CLOG        | zero page                     |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | CLOG        | truncate before               |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Database    | create db                     |            1 | 0.12%     |          50 | 0.10%      |        0 | 0.00%   |            50 | 0.05%
 datanode1 | Database    | drop db                       |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Tablespace  | create tablespace             |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Tablespace  | drop tablespace               |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Tablespace  | relative create               |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | MultiXact   | zero offsets page             |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | MultiXact   | zero members page             |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | MultiXact   | create multixact              |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | RelMap      | update relmap                 |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Standby     | AccessExclusive locks         |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Standby     | xlog running xacts            |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Standby     | release AccessExclusive locks |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Standby     | xlog standby csn              |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap2       | freeze                        |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap2       | clean                         |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap2       | page upgrade                  |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap2       | cleanup info                  |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap2       | visible                       |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap2       | multi-insert                  |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap2       | bcm                           |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap2       | logical newpage rel           |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap2       | no repair page                |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap2       | multi-insert(init) base xid   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap        | insert                        |          280 | 32.67%    |       15964 | 32.63%     |    14314 | 31.31%  |         30278 | 31.99%
 datanode1 | Heap        | delete                        |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap        | update                        |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap        | base shift                    |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap        | hot update                    |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap        | new page                      |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap        | lock type                     |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap        | inplace                       |            2 | 0.23%     |         116 | 0.24%      |     8164 | 17.86%  |          8280 | 8.75%
 datanode1 | Heap        | init page                     |            2 | 0.23%     |         130 | 0.27%      |       92 | 0.20%   |           222 | 0.23%
 datanode1 | Heap        | insert(init) base xid         |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Btree       | insert leaf                   |          562 | 65.58%    |       31484 | 64.35%     |    13352 | 29.21%  |         44836 | 47.37%
 datanode1 | Btree       | insert upper                  |            1 | 0.12%     |          72 | 0.15%      |      148 | 0.32%   |           220 | 0.23%
 datanode1 | Btree       | insert meta                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Btree       | split left                    |            1 | 0.12%     |          78 | 0.16%      |      744 | 1.63%   |           822 | 0.87%
 datanode1 | Btree       | split right                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Btree       | split left root               |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Btree       | split right root              |            1 | 0.12%     |          78 | 0.16%      |      672 | 1.47%   |           750 | 0.79%
 datanode1 | Btree       | delete                        |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Btree       | delete page                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Btree       | delete page meta              |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Btree       | lev                           |            1 | 0.12%     |          78 | 0.16%      |       40 | 0.09%   |           118 | 0.12%
 datanode1 | Btree       | delete page half              |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Btree       | vacuum                        |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Btree       | reuse page                    |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gin         | Create index                  |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gin         | Create ptree                  |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gin         | Insert item                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gin         | Page split                    |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gin         | Vacuum page                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gin         | Delete page                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gin         | Update metapage               |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gin         | Insert new list page          |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gin         | Delete list pages             |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gin         | Vacuum data leaf page         |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gist        | page update                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gist        | page split                    |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gist        | Create index                  |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Gist        | page delete                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Sequence    | log                           |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | SPGist      | create index                  |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | SPGist      | add leaf to page              |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | SPGist      | move leafs                    |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | SPGist      | add node                      |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | SPGist      | prefix off                    |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | SPGist      | picksplit                     |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | SPGist      | vacuum leaf                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | SPGist      | vacuum root                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | SPGist      | newest XID                    |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Slot        | create slot                   |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Slot        | advance slot                  |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Slot        | drop slot                     |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Slot        | check slot                    |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap3       | new cid                       |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Heap3       | heap rewrite                  |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
 datanode1 | Barrier     | barrier                       |            0 | 0.00%     |           0 | 0.00%      |        0 | 0.00%   |             0 | 0.00%
(102 rows)
```
#### pgxc_get_wal_speed()
描述：在CN上执行，获取每一个DN实例的wal生成速率以及备DN receive、write、flush、redo速率。该函数仅8.3.0及以上集群版本支持。
返回值类型：record
返回信息如下：
| 名称             | 类型     | 描述                    |
|:---|:---|:---|
| node_name      | text   | 节点名称。                 |
| pid            | bigint | 线程PID号。               |
| local_role     | text   | 当前节点role。             |
| peer_role      | text   | 接收方role。              |
| peer_state     | text   | 接收方状态。                |
| state          | text   | 传输状态。                 |
| generate_speed | bigint | 主DNwal生成速率，单位为byte/s。 |
| receive_speed  | bigint | 备DN接收速率，单位为byte/s。    |
| write_speed    | bigint | 备DN写速率，单位为byte/s。     |
| flush_speed    | bigint | 备DN刷盘速率，单位为byte/s。    |
| redo_speed     | bigint | 备DN redo速率，单位为byte/s。 |
   
```
SELECT * FROM pgxc_get_wal_speed();
node_name |       pid       | local_role | peer_role | peer_state |   state   | generate_speed | receive_speed | write_speed | flush_speed | apply_speed
-----------+-----------------+------------+-----------+------------+-----------+----------------+---------------+-------------+-------------+-------------
 datanode1 | 140240389260824 | Primary    | Secondary | Normal     | Streaming |              0 |             0 |           0 |           0 |           0
 datanode1 | 140240389262192 | Primary    | Standby   | Normal     | Streaming |              0 |             0 |           0 |           0 |           0
(2 rows)
```
#### pg_xlog_display_one_lsn(start_lsn)
描述：可以在CN或者DN上执行，根据起始LSN号完整解析当前位置的xlog。该函数仅8.3.0及以上集群版本支持。
入参：start_lsn，表示起始LSN。需要保证输入的起始LSN号是一条xlog的开始处。
返回值类型：record
返回信息如下：
| 名称        | 类型   | 描述                  |
|:---|:---|:---|
| node_name | text | 当前实例名。              |
| start_lsn | text | 设定的起始LSN。           |
| end_lsn   | text | 设定的终止LSN。           |
| startlsn  | text | xlog起始LSN。          |
| endlsn    | text | xlog终止LSN。          |
| prelsn    | text | 前一条xlog起始LSN。       |
| xid       | xid  | xlog事务ID号。          |
| datalen   | int4 | xlog数据长度，单位为byte。   |
| totallen  | int4 | xlog长度，单位为byte。     |
| type      | text | xlog类型。             |
| desc      | text | xlog内容。             |
| blkref    | text | xlog关联的relfilenode。 |
   
示例：
```
SELECT * FROM pg_xlog_display_one_lsn('0/101CA00');
node_name | startlsn  |  endlsn   |  prelsn   | xlog_tid | datalen | totallen |  xlogtype   |                                   xlogdescribe
          | blkref
-----------+-----------+-----------+-----------+----------+---------+----------+-------------+-------------------------------------------------------------------------
----------+--------
datanode1 | 0/101CA00 | 0/101CA78 | 0/101C3F8 |        5 |      80 |      114 | Transaction | commit: 2023-10-19 22:21:38.617092+08; csn:0; inval msgs: catcache 11 ca
tcache 10 |
(1 row)
```
#### pg_xlogdump (tablename)
描述：在CN或者DN上执行，根据表名解析xlog文件并过滤。该函数仅8.3.0及以上集群版本支持。
返回值类型：record
返回信息如下：
| 名称        | 类型   | 描述                  |
|:---|:---|:---|
| node_name | text | 节点名称。               |
| start_lsn | text | 设定的起始LSN。           |
| end_lsn   | text | 设定的终止LSN。           |
| startlsn  | text | xlog起始LSN。          |
| endlsn    | text | xlog终止LSN。          |
| prelsn    | text | 前一条xlog起始LSN。       |
| xid       | xid  | xlog事务ID号。          |
| datalen   | int4 | xlog数据长度，单位为byte。   |
| totallen  | int4 | xlog长度，单位为byte。     |
| type      | text | xlog类型。             |
| desc      | text | xlog内容。             |
| blkref    | text | xlog关联的relfilenode。 |
   
![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
- 由于不同xlog类型xlogdescribe字段的长度不一致，pg_xlogdump()函数会对该字段进行裁剪，仅保留前64个字节。
- 可以找到目标xlog后结合pg_xlog_display_one_lsn()函数查看完整xlog内容。
 
示例：
```
SELECT * FROM pg_xlogdump(pg_class);
 node_name | startlsn  |  endlsn   |  prelsn   | xlog_tid | datalen | totallen | xlogtype |  xlogdescribe   |                      blkref
-----------+-----------+-----------+-----------+----------+---------+----------+----------+-----------------+---------------------------------------------------
 datanode1 | 0/2DFC660 | 0/2DFE1D0 | 0/2DFA610 |        0 |       2 |     7000 | Heap     | inplace: off 17 | blkrel #0: rel 1663/16324/15920, fork main, blk 2
 datanode1 | 0/2E02270 | 0/2E02D88 | 0/2E00220 |        0 |       2 |     2840 | Heap     | inplace: off 2  | blkrel #0: rel 1663/16324/15920, fork main, blk 0
 datanode1 | 0/2E06E60 | 0/2E06F68 | 0/2E06E28 |        0 |       2 |      264 | Heap     | inplace: off 10 | blkrel #0: rel 1663/16324/15920, fork main, blk 0
 datanode1 | 0/2E0FC08 | 0/2E0FD10 | 0/2E0EBB8 |        0 |       2 |      264 | Heap     | inplace: off 13 | blkrel #0: rel 1663/16324/15920, fork main, blk 0
 datanode1 | 0/2E12960 | 0/2E12A68 | 0/2E11960 |        0 |       2 |      264 | Heap     | inplace: off 15 | blkrel #0: rel 1663/16324/15920, fork main, blk 0
 datanode1 | 0/2E12C88 | 0/2E12D90 | 0/2E12B78 |        0 |       2 |      264 | Heap     | inplace: off 17 | blkrel #0: rel 1663/16324/15920, fork main, blk 0
 datanode1 | 0/2E13FF8 | 0/2E14118 | 0/2E13110 |        0 |       2 |      264 | Heap     | inplace: off 18 | blkrel #0: rel 1663/16324/15920, fork main, blk 0
 datanode1 | 0/2E169F8 | 0/2E185E0 | 0/2E169B0 |        0 |       2 |     7120 | Heap     | inplace: off 1  | blkrel #0: rel 1663/16324/15920, fork main, blk 1
 datanode1 | 0/2E188B8 | 0/2E189D0 | 0/2E185E0 |        0 |       2 |      280 | Heap     | inplace: off 2  | blkrel #0: rel 1663/16324/15920, fork main, blk 1
 datanode1 | 0/2E18BF8 | 0/2E18CE0 | 0/2E189D0 |        0 |       2 |      232 | Heap     | inplace: off 28 | blkrel #0: rel 1663/16324/15920, fork main, blk 1
 datanode1 | 0/2E18E80 | 0/2E18F88 | 0/2E18DC0 |        0 |       2 |      264 | Heap     | inplace: off 4  | blkrel #0: rel 1663/16324/15920, fork main, blk 1
 datanode1 | 0/2E19160 | 0/2E19268 | 0/2E19088 |        0 |       2 |      264 | Heap     | inplace: off 5  | blkrel #0: rel 1663/16324/15920, fork main, blk 1
 datanode1 | 0/2E19460 | 0/2E1B1D0 | 0/2E19388 |        0 |       2 |     7508 | Heap     | inplace: off 16 | blkrel #0: rel 1663/16324/15920, fork main, blk 6
 datanode1 | 0/2E1B1D0 | 0/2E1B2E8 | 0/2E19460 |        0 |       2 |      280 | Heap     | inplace: off 18 | blkrel #0: rel 1663/16324/15920, fork main, blk 6
 datanode1 | 0/2E1B2E8 | 0/2E1B3D0 | 0/2E1B1D0 |        0 |       2 |      232 | Heap     | inplace: off 30 | blkrel #0: rel 1663/16324/15920, fork main, blk 1
(15 rows)
```
#### pg_xlogdump (xid)
描述：可以在CN或者DN上执行，根据事务id号解析xlog文件并过滤。该函数仅8.3.0及以上集群版本支持。
返回值类型：record
返回信息如下：
| 名称        | 类型   | 描述                  |
|:---|:---|:---|
| node_name | text | 节点名称。               |
| start_lsn | text | 设定的起始LSN。           |
| end_lsn   | text | 设定的终止LSN。           |
| startlsn  | text | xlog起始LSN。          |
| endlsn    | text | xlog终止LSN。          |
| prelsn    | text | 前一条xlog起始LSN。       |
| xid       | xid  | xlog事务ID号。          |
| datalen   | int4 | xlog数据长度，单位为byte。   |
| totallen  | int4 | xlog长度，单位为byte。     |
| type      | text | xlog类型。             |
| desc      | text | xlog内容。             |
| blkref    | text | xlog关联的relfilenode。 |
   
![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
- 由于不同xlog类型xlogdescribe字段的长度不一致，pg_xlogdump()函数会对该字段进行裁剪，仅保留前64个字节。
- 可以找到目标xlog后结合pg_xlog_display_one_lsn()函数查看完整xlog内容。
 
示例：
```
SELECT * FROM pg_xlogdump(1);
 node_name | startlsn  |  endlsn   |  prelsn   | xlog_tid | datalen | totallen | xlogtype |  xlogdescribe  |                   blkref
-----------+-----------+-----------+-----------+----------+---------+----------+----------+----------------+---------------------------------------------
 datanode1 | 0/10000A0 | 0/10020F0 | 0/1000028 |        1 |       0 |     8248 | XLOG     | page hint      | blkrel #0: rel 1663/1/1255, fork fsm, blk 2
 datanode1 | 0/10020F0 | 0/1004140 | 0/10000A0 |        1 |       0 |     8248 | XLOG     | page hint      | blkrel #0: rel 1663/1/1247, fork fsm, blk 2
 datanode1 | 0/1004140 | 0/1004168 | 0/10020F0 |        1 |       4 |       38 | XLOG     | nextOid: 18192 |
 datanode1 | 0/1004168 | 0/10061B8 | 0/1004140 |        1 |       0 |     8248 | XLOG     | page hint      | blkrel #0: rel 1663/1/2616, fork fsm, blk 2
 datanode1 | 0/10061B8 | 0/1008208 | 0/1004168 |        1 |       0 |     8248 | XLOG     | page hint      | blkrel #0: rel 1663/1/2602, fork fsm, blk 2
 datanode1 | 0/1008208 | 0/100A258 | 0/10061B8 |        1 |       0 |     8248 | XLOG     | page hint      | blkrel #0: rel 1663/1/2603, fork fsm, blk 2
 datanode1 | 0/100A258 | 0/100C2A8 | 0/1008208 |        1 |       0 |     8248 | XLOG     | page hint      | blkrel #0: rel 1663/1/2609, fork fsm, blk 2
 datanode1 | 0/100C2A8 | 0/100E2F8 | 0/100A258 |        1 |       0 |     8248 | XLOG     | page hint      | blkrel #0: rel 1663/1/2605, fork fsm, blk 2
 datanode1 | 0/100E2F8 | 0/1010348 | 0/100C2A8 |        1 |       0 |     8248 | XLOG     | page hint      | blkrel #0: rel 1663/1/1259, fork fsm, blk 2
 datanode1 | 0/1010348 | 0/1012398 | 0/100E2F8 |        1 |       0 |     8248 | XLOG     | page hint      | blkrel #0: rel 1663/1/2610, fork fsm, blk 2
(10 rows)
```
#### pg_xlogdump (start_lsn, end_lsn)
描述：可以在CN或者DN上执行，根据起始和终止lsn解析xlog文件。该函数仅8.3.0及以上集群版本支持。
入参：start_lsn，表示设定的起始LSN号；end_lsn，表示设定的终止LSN号。无需保证起始LSN号是一条xlog的起始位置，会从起始LSN号后第一条有效的xlog开始解析。
返回值类型：record
返回信息如下：
| 字段名称      | 类型   | 含义                  |
|:---|:---|:---|
| node_name | text | 节点名称。               |
| start_lsn | text | 设定的起始LSN。           |
| end_lsn   | text | 设定的终止LSN。           |
| startlsn  | text | xlog起始LSN。          |
| endlsn    | text | xlog终止LSN。          |
| prelsn    | text | 前一条xlog起始LSN。       |
| xid       | xid  | xlog事务ID号。          |
| datalen   | int4 | xlog数据长度，单位为byte。   |
| totallen  | int4 | xlog长度，单位为byte。     |
| type      | text | xlog类型。             |
| desc      | text | xlog内容。             |
| blkref    | text | xlog关联的relfilenode。 |
   
![](https://support.huaweicloud.com/sqlreference-dws/public_sys-resources/note_3.0-zh-cn.png)
- 由于不同xlog类型xlogdescribe字段的长度不一致，pg_xlogdump()函数会对该字段进行裁剪，仅保留前64个字节。
- 可以找到目标xlog后结合pg_xlog_display_one_lsn()函数查看完整xlog内容。
 
示例：
```
SELECT * FROM pg_xlogdump('0/101EF70','0/101F590');
 node_name | startlsn  |  endlsn   |  prelsn   | xlog_tid | datalen | totallen | xlogtype |     xlogdescribe      |                    blkref
-----------+-----------+-----------+-----------+----------+---------+----------+----------+-----------------------+----------------------------------------------
 datanode1 | 0/101EF70 | 0/101EFC0 | 0/101EF18 |        6 |       2 |       80 | Btree    | insert leaf: off 1    | blkrel #0: rel 1663/1/2674, fork main, blk 1
 datanode1 | 0/101EFC0 | 0/101F018 | 0/101EF70 |        6 |       3 |       88 | Heap     | insert: off 2 flags 0 | blkrel #0: rel 1663/1/2608, fork main, blk 0
 datanode1 | 0/101F018 | 0/101F068 | 0/101EFC0 |        6 |       2 |       80 | Btree    | insert leaf: off 1    | blkrel #0: rel 1663/1/2673, fork main, blk 1
 datanode1 | 0/101F068 | 0/101F0B8 | 0/101F018 |        6 |       2 |       80 | Btree    | insert leaf: off 2    | blkrel #0: rel 1663/1/2674, fork main, blk 1
 datanode1 | 0/101F0B8 | 0/101F110 | 0/101F068 |        6 |       3 |       88 | Heap     | insert: off 3 flags 0 | blkrel #0: rel 1663/1/2608, fork main, blk 0
 datanode1 | 0/101F110 | 0/101F160 | 0/101F0B8 |        6 |       2 |       80 | Btree    | insert leaf: off 1    | blkrel #0: rel 1663/1/2673, fork main, blk 1
 datanode1 | 0/101F160 | 0/101F1B0 | 0/101F110 |        6 |       2 |       80 | Btree    | insert leaf: off 3    | blkrel #0: rel 1663/1/2674, fork main, blk 1
 datanode1 | 0/101F1B0 | 0/101F208 | 0/101F160 |        6 |       3 |       88 | Heap     | insert: off 4 flags 0 | blkrel #0: rel 1663/1/2608, fork main, blk 0
 datanode1 | 0/101F208 | 0/101F258 | 0/101F1B0 |        6 |       2 |       80 | Btree    | insert leaf: off 1    | blkrel #0: rel 1663/1/2673, fork main, blk 1
 datanode1 | 0/101F258 | 0/101F2A8 | 0/101F208 |        6 |       2 |       80 | Btree    | insert leaf: off 4    | blkrel #0: rel 1663/1/2674, fork main, blk 1
 datanode1 | 0/101F2A8 | 0/101F300 | 0/101F258 |        6 |       3 |       88 | Heap     | insert: off 5 flags 0 | blkrel #0: rel 1663/1/2608, fork main, blk 0
 datanode1 | 0/101F300 | 0/101F350 | 0/101F2A8 |        6 |       2 |       80 | Btree    | insert leaf: off 1    | blkrel #0: rel 1663/1/2673, fork main, blk 1
 datanode1 | 0/101F350 | 0/101F3A0 | 0/101F300 |        6 |       2 |       80 | Btree    | insert leaf: off 5    | blkrel #0: rel 1663/1/2674, fork main, blk 1
 datanode1 | 0/101F3A0 | 0/101F3F8 | 0/101F350 |        6 |       3 |       88 | Heap     | insert: off 6 flags 0 | blkrel #0: rel 1663/1/2608, fork main, blk 0
 datanode1 | 0/101F3F8 | 0/101F448 | 0/101F3A0 |        6 |       2 |       80 | Btree    | insert leaf: off 1    | blkrel #0: rel 1663/1/2673, fork main, blk 1
 datanode1 | 0/101F448 | 0/101F498 | 0/101F3F8 |        6 |       2 |       80 | Btree    | insert leaf: off 5    | blkrel #0: rel 1663/1/2674, fork main, blk 1
 datanode1 | 0/101F498 | 0/101F4F0 | 0/101F448 |        6 |       3 |       88 | Heap     | insert: off 7 flags 0 | blkrel #0: rel 1663/1/2608, fork main, blk 0
 datanode1 | 0/101F4F0 | 0/101F540 | 0/101F498 |        6 |       2 |       80 | Btree    | insert leaf: off 1    | blkrel #0: rel 1663/1/2673, fork main, blk 1
 datanode1 | 0/101F540 | 0/101F590 | 0/101F4F0 |        6 |       2 |       80 | Btree    | insert leaf: off 6    | blkrel #0: rel 1663/1/2674, fork main, blk 1
(19 rows)
```
