# 其它函数
- pgxc_pool_check() 描述：检查连接池中缓存的连接数据是否与pgxc_node一致。
  返回值类型：Boolean
  
- pgxc_pool_reload() 描述：更新连接池中缓存的连接信息。
  返回值类型：Boolean
  
- reload_active_coordinator() 描述：对所有存活的CN，更新连接池中缓存的连接信息。
  返回值类型：void
  
- pgxc_lock_for_backup() 描述：为备份操作给集群加锁，这些备份是为在新增节点上做恢复。
  返回值类型：Boolean
  备注：调用该函数的用户需要具有SYSADMIN权限。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  pgxc_lock_for_backup是在使用gs_dump或gs_dumpall工具备份集群前，用来给集群加锁的。当给集群加锁后，不允许有改变系统结构的操作。该函数不影响DML语句。
  
- pg_pool_validate(clear bool, node_name text) 描述：显示CN到节点node_name之间pooler中无效连接，当clear为true时清理无效连接。
  返回值类型：record
  
- gs_validate_node_conn(validate_type cstring, validate_node_name cstring) 描述：显示或清除当前节点接收来自指定节点的连接。
  返回值类型：record
  表1gs_validate_node_conn函数参数说明 
  | 参数类型  | 参数名               | 类型      | 描述                                                                                                                                                                                                                                                                                                                   |
  |:---|:---|:---|:---|
  | 输入参数   | validate_type     | cstring | 指定入参类型： - 'check'：用于显示当前节点接收来自指定节点的连接。  - 'clear'：用于清除当前节点接收来自指定节点的连接。   |
  | 输入参数  | validate_node_name | cstring | 指定节点名称。                                                                                                                                                                                                                                                                                                              |
  | 输出参数   | pid                | bigint  | 显示当前节点接收来自指定节点连接的线程id（若是线程池线程则为0）。                                                                                                                                                                                                                                                                                    |
  | 输出参数 | sessionid       | bigint  | 显示当前节点接收来自指定节点连接的session id（若是非线程池线程则为0）。                                                                                                                                                                                                                                                                            |
  | 输出参数     | node_name         | text      | 显示当前节点接收来自指定节点连接的节点名称。                                                                                                                                                                                                                                                                                             |
     
  
- pgxc_pool_connection_status() 描述：检查pooler连接状态是否正常。
  返回值类型：boolean
  
- pg_nodes_memory() 描述：查看所有节点的内存占用。
  返回值类型：record
  
- table_skewness(text) 描述：查看表数据在所有节点的占比。该函数不支持查询hashbucket表在所有节点的占比。
  参数：表示待查询表的表名，为text类型。
  返回值类型：record
  
- table_skewness(text, text, text) 描述：查看表数据指定列在所有节点的占比。
  参数：表示待查询表的表名、指定列名、指定的表的记录数（默认值为0，查询所有记录），都为text类型。
  返回值类型：record
  返回值说明：节点编号，指定列的数据行数，当前节点数据量相对总数据量的占比。
  示例：
  ```
  --返回't'表'a'字段前5行数据在节点上的分布。
  gaussdb=# SELECT table_skewness('t', 'a',5);
   table_skewness
  ----------------
   (1,3,60.000%)
   (2,2,40.000%)
  (2 rows)
  --返回't'表'a'字段所有数据在节点上的分布。
  gaussdb=# SELECT table_skewness('t', 'a');
   table_skewness
  ----------------
   (1,7,70.000%)
   (2,2,20.000%)
   (0,1,10.000%)
  (3 rows)
  ```
  
- table_skewness_with_schema(text, text) 描述：查看表数据在所有节点的占比，与table_skewness(text)作用相同。
  参数：表示待查询表的schema名称和表名，为text类型。
  返回值类型：record
  
- table_data_skewness(colrecord, type) 描述：查看表数据所在节点。
  参数：
  - colrecord：表示待查询表的列名记录，为record类型。
  
  - type：hash分布类型，其取值请参见[PGXC_CLASS](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-1023.html)系统表中pclocatortype字段的描述。
  
  
  返回值类型：smallint
  示例：
  ```
  --返回'test1'表的'index'字段数据所在的节点。
  gaussdb=# SELECT table_data_skewness(row(index), 'R') FROM test1;
   table_data_skewness
  ---------------------
                     4
                     3
                     1
                     2
  (4 rows)
  ```
  
- table_distribution(schemaname text, tablename text) 描述：查看指定表在各个节点上占用的存储空间。
  参数：表示待查询表的模式名和表名，均为text类型。
  返回值类型：record
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - 使用本函数查询指定表存储分布信息，需要具备指定表的SELECT权限。
  
  - table_distribution性能比table_skewness更优，尤其是在大数据量场景下，请优先考虑使用table_distribution函数。
  
  - 当使用table_distribution并希望直观的看到空间占比时，可使用dnsize/(sum(dnsize) over ())的方式查看出具体的占比情况。
    
- table_distribution() 描述：查看当前库中所有表在各节点的存储空间分布情况。
  返回值类型：record
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - 使用本函数涉及全库表信息查询，需要具备管理员权限。
  
  - 当前基于table_distribution()函数，GaussDB提供PGXC_GET_TABLE_SKEWNESS视图（请参见[PGXC_GET_TABLE_SKEWNESS](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-1372.html)）进行数据倾斜查询，建议在数据库中表数量（小于10000）较少的场景直接使用。
    
- plan_seed() 描述：获取前一次查询语句的seed值（内部使用）。
  返回值类型：int
  
- pg_stat_get_env() 描述：获取当前节点的环境变量信息，仅sysadmin和monitor admin可以访问。
  返回值类型：record
  示例：
  ```
  gaussdb=# SELECT pg_stat_get_env();
                                                                                pg_stat_get_env
  ---------------------------------------------------------------------------------------------------------------------------------------
   (coordinator1,localhost,144773,49100,/data1/GaussDB_Kernel_TRUNK/install,/data1/GaussDB_Kernel_TRUNK/install/data/coordinator1,gs_log)
  (1 row)
  ```
  
- pg_stat_get_thread() 描述：提供当前节点下线程的状态信息，sysadmin和monitor admin用户可以查看所有线程的信息，普通用户只能查看本用户的线程信息。
  返回值类型：record
  
- pgxc_get_os_threads() 描述：提供整个集群中所有正常节点下的线程状态信息。
  返回值类型：record
  
- pg_stat_get_sql_count() 描述：提供当前节点中用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的计数结果和DDL/DML/DCL语句的计数结果。DDL语句包括"TRUNCATE"、"CLUSTER"、"VACUUM"、"ANALYZE"、"CREATE"（不包括"CREATE ROLE"和"CREATE USER"）、"DROP"（不包括"DROP ROLE"和"DROP USER"）、"ALTER"（不包括"ALTER ROLE"、"ALTER USER"、"ALTER DEFAULT PRIVILEGES"和"ALTER SESSION"）、"REINDEX"、"COMMENT"、"BARRIER"、"SECURITY LABEL ON"、"PURGE"、"TIMECAPSULE"、"REFRESH"、"IMPDP"和"EXPDP"语句。DML语句包括"SELECT"、"UPDATE"、"INSERT"、"DELETE"、"MERGE"、"PREPARE"、"EXPLAIN"、"LOCK"、"COPY"、"ANONYMOUS"、"DELTA"、"EXECUTE"、"MOVE"、"FETCH"、"CLOSE"、"DEALLOCATE"、"DECLARE"、"CURSOR"和"LOAD"语句。DCL语句包括"SHOW"、"CREATE ROLE"、"CREATE USER"、"DROP ROLE"、"DROP USER"、"ALTER ROLE"、"ALTER USER"、"ALTER DEFAULT PRIVILEGES"、"GRANT"、"REVOKE"、"REASSIGN"、"SET"、"RESET"和"ALTER SESSION"语句。sysadmin和monitor admin用户可以查看所有用户的统计信息，普通用户可以查看本用户的统计信息。
  返回值类型：record
  
- pgxc_get_sql_count() 描述：提供整个集群所有节点中所有用户执行的SELECT/UPDATE/INSERT/DELETE/MERGE INTO语句的计数结果和DDL/DML/DCL语句的计数结果，DDL语句包括"TRUNCATE"、"CLUSTER"、"VACUUM"、"ANALYZE"、"CREATE"（不包括"CREATE ROLE"和"CREATE USER"）、"DROP"（不包括"DROP ROLE"和"DROP USER"）、"ALTER"（不包括"ALTER ROLE"、"ALTER USER"、"ALTER DEFAULT PRIVILEGES"和"ALTER SESSION"）、"REINDEX"、"COMMENT"、"BARRIER"、"SECURITY LABEL ON"、"PURGE"、"TIMECAPSULE"、"REFRESH"、"IMPDP"和"EXPDP"语句。DML语句包括"SELECT"、"UPDATE"、"INSERT"、"DELETE"、"MERGE"、"PREPARE"、"EXPLAIN"、"LOCK"、"COPY"、"ANONYMOUS"、"DELTA"、"EXECUTE"、"MOVE"、"FETCH"、"CLOSE"、"DEALLOCATE"、"DECLARE"、"CURSOR"和"LOAD"语句。DCL语句包括"SHOW"、"CREATE ROLE"、"CREATE USER"、"DROP ROLE"、"DROP USER"、"ALTER ROLE"、"ALTER USER"、"ALTER DEFAULT PRIVILEGES"、"GRANT"、"REVOKE"、"REASSIGN"、"SET"、"RESET"和"ALTER SESSION"语句。
  返回值类型：record
  
- pgxc_get_node_env() 描述：提供获取集群中所有节点的环境变量信息。
  返回值类型：record
  
- pgxc_disaster_read_set(text) 描述：设置灾备集群的节点信息到ETCD上。仅灾备集群可用，仅初始用户可调用。
  返回值类型：Boolean
  
- pgxc_disaster_read_init() 描述：初始化灾备可读的资源和状态信息。仅灾备集群可用，仅初始用户可调用。
  返回值类型：Boolean
  
- pgxc_disaster_read_clear() 描述：清理灾备可读的资源和状态信息。仅灾备集群可用，仅初始用户可调用。
  返回值类型：Boolean
  
- pgxc_disaster_read_status() 描述：提供灾备集群的节点信息，仅灾备集群可用。
  返回值类型：record
  
- disaster_read_set_cn_status() 描述：更新灾备读中CN活跃状态信息。仅灾备集群可用。
  返回值类型：Boolean
  示例：
  ```
  gaussdb=# SELECT g_catalog.disaster_read_set_cn_status('440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
  disaster_read_set_cn_status 
  -----------------------------
   t
  (1 row)
  ```
  
- disaster_read_del_cn_status() 描述：清理灾备读中CN活跃状态信息。仅灾备集群可用。
  返回值类型：Boolean
  示例：
  ```
  gaussdb=# SELECT pg_catalog.disaster_read_del_cn_status();
  disaster_read_del_cn_status 
  -----------------------------
   t
  (1 row)
  ```
  
- gs_switch_relfilenode() 描述：交换两个表或分区的元信息（重分布工具内部使用，用户直接使用会有错误信息提示）。
  返回值类型：int
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  此函数可能导致清空统计信息，建议在调用后重新收集统计信息。
  
- pg_catalog.plancache_clean() 描述：清理当前节点上无人使用的全局计划缓存。集群创建后的默认情况下，查询该函数必须具有MONADMIN权限。
  返回值类型：boolean
  
- DBE_PERF.global_plancache_clean() 描述：清理所有节点上无人使用的全局计划缓存。集群创建后的默认情况下，查询该函数必须具有MONADMIN权限。
  返回值类型：Boolean
  
- pg_catalog.global_plancache_set_invalid(hashkey, unique_sql_id) 描述：支持通过bigint类型的入参hashkey和unique_sql_id手动失效本节点的GPC缓存计划。集群创建后的默认情况下，查询该函数必须具有MONADMIN权限。
  返回值类型：text
  示例：
  ```
  -- 从dbe_perf.global_plancache_status视图中获取hash_value作为第一个入参，unique_sql_id作为第二个入参。
  gaussdb=# SELECT * FROM pg_catalog.global_plancache_set_invalid(3928396421,3641111755);
   global_plancache_set_invalid 
  ------------------------------
   Execution succeeded.
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - 不建议用户使用此函数，会导致硬解析次数变多，影响性能。
  
  - 函数不支持使unique_sql_id为0的计划失效。
    
- pg_catalog.global_plancache_show_plan(hashkey, unique_sql_id) 描述：通过bigint类型的入参hashkey和unique_sql_id，查看对应的GPC缓存计划。集群创建后的默认情况下，查询该函数必须具有MONADMIN权限。此函数不支持explain_perf_mode pretty模式。
  返回值类型：text
  示例：
  ```
  -- 从dbe_perf.global_plancache_status视图中获取hash_value作为第一个入参，unique_sql_id作为第二个入参。
  gaussdb=# SELECT * FROM pg_catalog.global_plancache_show_plan(3928396421,3641111755);
          global_plancache_show_plan        
  ------------------------------------------
   Result  (cost=0.00..0.01 rows=1 width=0)+
  (1 row)
  ```
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  函数不支持显示unique_sql_id为0的计划。
  
- copy_error_log_create() 描述：由于COPY FROM容错机制所需要的错误表已变更为在初始化阶段创建的系统表，因此当前函数改为始终返回true，仅做兼容。
  返回值类型：Boolean
  表2错误表pg_catalog.pgxc_copy_error_log信息 
  | 列名称        | 类型                        | 描述                                    |
  |:---|:---|:---|
  | relname    | character varying         | 表名称。以模式名.表名形式显示。                    |
  | begintime | timestamp with time zone | 出现数据格式错误的时间。                          |
  | filename  | character varying        | 出现数据格式错误的数据源文件名。                   |
  | lineno    | bigint                  | 在数据源文件中，出现数据格式错误的行号。                |
  | rawrecord | text                      | 在数据源文件中，出现数据格式错误的原始记录。              |
  | detail    | text                       | 详细错误信息。                            |
  | custom_id | text                     | 关联的copy_custom_id输入的值，表示本次导入的自定义标识信息。 |
     
  
- pgxc_copy_error_func(boolean need_union, boolean only_dn) 描述：查询各节点上pg_catalog.gs_copy_error_log表中的内容并返回。返回值record中各字段的名称及数据类型与pg_catalog.gs_copy_error_log表中各字段名称及数据类型对应。
  返回值类型：set of record
  表3pgxc_copy_error_func参数说明 
  | 参数          | 类型        | 描述                                                                                                                                                                                                                                                                                                                                        |
  |:---|:---|:---|
  | need_union | boolean   | - true表示同时查询pg_catalog.gs_copy_error_log表和pg_catalog.gs_copy_error_old表中的数据并做union_all操作；  - false表示仅查询pg_catalog.gs_copy_error_log表中的数据。   |
  | only_dn    | boolean | - true表示只查询所有DN节点上的数据；  - false表示查询所有节点上的数据。                                                                                             |
     
  
- gs_copy_error_insert(cstring relname, cstring begintime, cstring filename, bigint lineno, cstring rawrecord, cstring detail, cstring custom_id) 描述：向DN节点的pg_catalog.gs_copy_error_log表中插入数据。该函数仅供COPY内部调用，禁止用户主动调用。
  返回值类型：boolean
  表4gs_copy_error_insert参数说明 
  | 参数       | 类型        | 描述                                   |
  |:---|:---|:---|
  | relname   | cstring  | 表名称。以模式名.表名形式显示。                    |
  | begintime   | cstring    | 出现数据格式错误的时间。                         |
  | filename   | cstring  | 出现数据格式错误的数据源文件名。                     |
  | lineno     | bigint    | 在数据源文件中，出现数据格式错误的行号。               |
  | rawrecord   | cstring  | 在数据源文件中，出现数据格式错误的原始记录。               |
  | detail    | cstring   | 详细错误信息。                               |
  | custom_id | cstring | 关联的copy_custom_id输入的值，表示本次导入的自定义标识信息。 |
     
  
- gs_copy_summary_func(boolean need_union) 描述：查询当前节点上pg_catalog.gs_copy_summary_log表中的内容并返回。目前不支持此函数。
  返回值类型：set of record
  表5gs_copy_summary_func参数说明 
  | 参数        | 类型       | 描述                                                                                                                                                                                                                                                                                                                                                       |
  |:---|:---|:---|
  | need_union | boolean | - true表示同时查询pg_catalog.gs_copy_summary_log表和pg_catalog.gs_copy_summary_old表中的数据并做union_all操作；  - false表示仅查询pg_catalog.gs_copy_summary_log表中的数据。   |
     
  
- pg_stat_get_data_senders() 描述：提供当前活跃的数据复制发送线程的详细信息。
  返回值类型：record
  
- textlen() 描述：提供查询text的逻辑长度的方法。
  返回值类型：int
  
- threadpool_status() 描述：显示线程池中工作线程及会话的状态信息。
  返回值类型：record
  
- get_local_active_session() 描述：提供当前节点保存在内存中的历史活跃session状态的采样记录，sysadmin和monitor admin权限能查看当前节点所有的历史活跃session记录，普通用户查看本会话的历史活跃session记录。
  返回值类型：record
  
- dbe_perf.get_global_gs_asp(timestamp,timestamp) 描述：提供所有节点保存在系统表gs_asp中的历史活跃session状态的采样记录。505.0版本新增event_start_time、current_xid、top_xid三个字段信息，由低于505.0版本升级至505.0或更高版本时，升级观察期无法查询。
  返回值类型：record
  
- get_wait_event_info() 描述：提供wait event事件的具体信息。
  返回值类型：record
  
- dbe_perf.get_datanode_active_session(text) 描述：提供从CN查询主DN上保存在内存中的历史活跃session状态的采样记录。505.0版本新增event_start_time、current_xid、top_xid三个字段信息，由低于505.0版本升级至505.0或更高版本时，升级观察期无法查询。
  返回值类型：record
  备注：该函数查询目标DN上DBE_PERF.LOCAL_ACTIVE_SESSION视图（请参见[DBE_PERF.LOCAL_ACTIVE_SESSION](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-1517.html)）中的记录并和所有CN上的DBE_PERF.LOCAL_ACTIVE_SESSION视图中的记录进行匹配获取query string，所以会占用大量的内存。
  
- dbe_perf.get_datanode_active_session_hist(text,timestamp,timestamp) 描述：提供从CN查询主DN上保存在系统表gs_asp中的历史活跃session状态的采样记录。505.0版本新增event_start_time、current_xid、top_xid三个字段信息，由低于505.0版本升级至505.0或更高版本时，升级观察期无法查询。
  返回值类型：record
  备注：该函数查询目标DN上指定时间段的gs_asp记录，如果指定时间段过长造成查询的记录过多，会耗费大量时间。
  
- generate_wdr_report(begin_snap_id bigint, end_snap_id bigint, report_type cstring, report_scope cstring, node_name cstring) 描述：基于两个snapshot生成系统诊断报告，默认初始化用户或监控管理员用户可以访问。只可在系统库中查询到结果，用户库中无法查询。
  返回值类型：text
  表6generate_wdr_report参数说明 
  | 参数          | 说明                                                                                                                                                                                                                                                                                                                                        | 取值范围                                                                                                                                                                                                                                                                                                                                             |
  |:---|:---|:---|
  | begin_snap_id | 生成某段时间内性能诊断报告的开始snapshotid。                                                                                                                                                                                                                                                                                                               | 1\~9,223,372,036,854,775,807                                                                                                                                                                                                                                                                                                                       |
  | end_snap_id   | 结束snapshot的id，默认end_snap_id大于begin_snap_id。                                                                                                                                                                                                                                                                                              | 1\~9,223,372,036,854,775,807                                                                                                                                                                                                                                                                                                                        |
  | report_type   | 指定生成report的类型。                                                                                                                                                                                                                                                                                                                             | - summary  - detail  - all，即同时包含summary和detail。   |
  | report_scope   | 指定生成report的范围。                                                                                                                                                                                                                                                                                                                            | - cluster：数据库级别的信息。  - node：节点级别的信息。                                                                                                          |
  | node_name    | - 在report_scope指定为node时，需要把该参数指定为对应节点的名称，节点名称可以通过执行"SELECT \* FROM pg_node_env;"查询。  - 在report_scope指定为cluster时，该值可以省略，或者指定为空或NULL。   | - cluster：省略/空/NULL。  - node：GaussDB中的节点名称。                                   |
     
  
- generate_wdr_db_report(db_name cstring, begin_snap_id bigint, end_snap_id bigint, report_type cstring, report_scope cstring, node_name cstring) 描述：基于两个snapshot生成库级系统诊断报告。需要在系统库下执行，默认初始化用户或monadmin用户可以访问。用户只可在系统库中查询到结果，用户库中无法查询。
  返回值类型：record
  表7generate_wdr_db_report 参数说明 
  | 参数          | 说明                                                                                                                                                                                                                                                                                                                                       | 取值范围                                                                                                                                                                                                                                                                                                                                                 |
  |:---|:---|:---|
  | db_name     | 指定database名称。                                                                                                                                                                                                                                                                                                                            | -                                                                                                                                                                                                                                                                                                                                                   |
  | begin_snap_id | 生成某段时间内性能诊断报告的开始snapshotid。                                                                                                                                                                                                                                                                                                               | 1\~9,223,372,036,854,775,807                                                                                                                                                                                                                                                                                                                         |
  | end_snap_id   | 结束snapshot的id，默认end_snap_id大于begin_snap_id。                                                                                                                                                                                                                                                                                              | 1\~9,223,372,036,854,775,807                                                                                                                                                                                                                                                                                                                          |
  | report_type  | 指定生成report的类型。                                                                                                                                                                                                                                                                                                                            | - summary  - detail  - all，即同时包含summary和detail。   |
  | report_scope | 指定生成report的范围。                                                                                                                                                                                                                                                                                                                            | - cluster：数据库级别的信息。  - node：节点级别的信息。                                                                                                                  |
  | node_name    | - 在report_scope指定为node时，需要把该参数指定为对应节点的名称，节点名称可以通过执行"SELECT \* FROM pg_node_env;"查询。  - 在report_scope指定为cluster时，该值可以省略，或者指定为空或NULL。   | - cluster：省略/空/NULL。  - node：GaussDB中的节点名称。                                                                                                         |
     
  
- create_wdr_snapshot() 描述：手工生成系统诊断快照，该函数需要sysadmin权限，且只能在CCN上执行。
  返回值类型：text
  
- kill_snapshot() 描述：kill后台的WDR snapshot线程，调用该函数的用户需要具有SYSADMIN权限或具有REPLICATION权限或继承了内置角色gs_role_replication的权限。
  返回值类型：void
  
- dbe_perf.generate_asp_report(start_time timestamp with time zone, end_time timestamp with time zone, datanode text, slot_count bigint) 描述：基于时间戳和节点信息生成ASP诊断报告，monadmin用户可以访问。slot_count为指标展示时分割的时间段的个数。datanode可以指定某个分区DN（如：dn_6001_6002_6003），或者是某个DN节点（dn_6001、dn_6002、dn_6003）。该函数只能在CN上使用。
  返回值类型：text
  
- generate_asp_report(start_time timestamp with time zone, end_time timestamp with time zone, slot_count bigint, node_name text) 描述：基于时间戳生成ASP诊断报告，monadmin用户可以访问。slot_count为指标展示时分割的时间段的个数。node_name用于生成指定节点的ASP报告，取值只能是当前CN的名称，可缺省。缺省时，生成当前节点的报告。该函数只能在CN上使用。
  返回值类型：text
  
- dbe_perf.get_active_session_profile(start_ts timestamp with time zone, end_ts timestamp with time zone, need_final boolean,node_name text) 描述：基于时间戳查询asp内存中与磁盘中的数据。need_final是否查询阻塞信息，默认值为false。node_name用于区分CN、主备DN，如（cn_5001、dn_6001或dn_6002），不可缺省。505.0版本新增event_start_time、current_xid、top_xid三个字段信息，由低于505.0版本升级至505.0或更高版本时，升级观察期无法查询。
  返回值类型：record
  
- capture_view_to_json(text,integer) 描述：将视图的结果存入GUC: perf_directory所指定的目录，如果is_crossdb为1，则表示对于所有的database都会访问一次view；如果is_crossdb为0，则表示仅对当前database进行一次视图访问。该函数只有sysadmin和monitor admin用户可以执行。
  返回值类型：int
  
- reset_unique_sql(text,text,bigint) 描述：用来清理CN/DN内存中的Unique SQL（需要sysadmin/monitor admin权限）。
  返回值类型：Boolean
  表8reset_unique_sql参数说明 
  | 参数             | 类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
  |:---|:---|:---|
  | scope       | text | 清理范围类型： - 'GLOBAL' ：清理所有的CN/DN节点，如果是'GLOBAL'，则只可以为CN节点执行此函数。  - 'LOCAL' ：清理本节点。                                                                                                                                                             |
  | clean_type | text | - 'BY_USERID'：按用户ID来进行清理Unique SQL。  - 'BY_CNID' ：按CN的ID来进行清理Unique SQL。  - 'ALL' ：全部清理。                                                                                                   |
  | clean_value | int8 | clean_type对应的清理值。 - 如果clean_type为'BY_USERID'，则清理用户ID为clean_value的记录。  - 如果clean_type为'BY_CNID'，则清理CN的ID为clean_value的记录。  - 如果第二个参数为ALL，则第三个参数无效，可为任意值。   |
     
  
- wdr_xdb_query(db_name_str text, query text) 描述：提供本地跨数据库执行query的能力。例如: 在连接到testdb库时，访问test库下的表。只有初始化用户才有权限执行。
  ```
  SELECT col1 from wdr_xdb_query('dbname=test','select col1 from t1') as dd(col1 int);
  ```
  返回值类型：record
  
- pg_wlm_jump_queue(pid int) 描述：调整任务到CN队列的最前端。
  返回值类型：boolean
  - true：成功。
  
  - false：失败。
   
- gs_wlm_switch_cgroup(pid int, cgroup text) 描述：调整作业的优先级到新控制组。
  返回值类型：boolean
  - true：成功。
  
  - false：失败。
   
- pv_session_memctx_detail(threadid tid, MemoryContextName text) 描述：将线程tid的MemoryContextName内存上下文信息记录到"$GAUSSLOG/gs_log/${node_name}/dumpmem"目录下的"threadid_timestamp.log"文件中。其中threadid可通过查询PV_SESSION_MEMORY_DETAIL视图（请参见[PV_SESSION_MEMORY_DETAIL](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-1390.html)）中的sessid字段获得。在正式发布的版本中仅接受MemoryContextName为空串（两个单引号表示输入为空串，即''）的输入，此时会记录所有的内存上下文信息，否则不会有任何操作。该函数需要管理员权限的用户才能执行。
  返回值类型：boolean
  - true：成功。
  
  - false：失败。
   
- pg_shared_memctx_detail(MemoryContextName text) 描述：将MemoryContextName内存上下文信息记录到"$GAUSSLOG/gs_log/${node_name}/dumpmem"目录下的"threadid_timestamp.log"文件中。在正式发布版本中调用该函数不会有任何操作。该函数需要管理员权限的用户才能执行。
  返回值类型：boolean
  - true：成功。
  
  - false：失败。
   
- local_aio_completer_stat() 描述：显示本实例中AIO Completer线程的相关统计信息。
  返回值类型：record
  表9local_aio_completer_stat返回值说明 
  | 参数                 | 类型    | 描述                             |
  |:---|:---|:---|
  | node_name          | text  | 当前实例名称。                         |
  | tid                | int8  | AIO Completer线程id。               |
  | thread_type          | text   | AIO Completer线程类型（读/写）。       |
  | aio_submitted_num   | int8 | AIO Completer线程已提交的异步I/O请求数量。    |
  | aio_completed_num  | int8  | AIO Completer线程已完成的异步I/O请求数量。    |
  | aio_incompleted_num | int8  | AIO Completer线程未完成的异步I/O请求数量。 |
  | slot_count_left     | int8  | 空闲slot数量。                       |
     
  
- local_aio_slot_usage_status() 描述：显示本实例中异步I/O提交槽位的相关统计信息。
  返回值类型：record
  表10local_aio_slot_usage_status返回值说明 
  | 参数                   | 类型     | 描述                    |
  |:---|:---|:---|
  | node_name          | text     | 当前实例名称。                |
  | slot_id            | int4  | 槽位id。                   |
  | slot_type            | char  | 槽位类型（r：读，w：写）。          |
  | status             | bool | 槽位占用状态。                |
  | buffer_id         | int8  | 该槽位对应的buffer id。       |
  | relfilenode_blocknum | text   | 该槽位对应的buffer所在的物理页面位置。 |
  | lsn                  | int8   | 页面对应的LSN。              |
  | submitted_time       | int8    | 页面异步提交时的时间。             |
  | elapsed_time         | int8  | 页面已经等待的时间。            |
     
  
- remote_aio_completer_stat() 描述：显示其他实例中AIO Completer线程的相关统计信息（仅在CN上使用）。
  返回值类型：record
  表11remote_aio_completer_stat返回值说明 
  | 参数                  | 类型   | 描述                            |
  |:---|:---|:---|
  | node_name           | text  | 其他实例名称。                       |
  | tid                   | int8  | AIO Completer线程id。             |
  | thread_type        | text | AIO Completer线程类型（读/写）。        |
  | aio_submitted_num   | int8    | AIO Completer线程已提交的异步I/O请求数量。   |
  | aio_completed_num  | int8  | AIO Completer线程已完成的异步I/O请求数量。  |
  | aio_incompleted_num | int8  | AIO Completer线程未完成的异步I/O请求数量。 |
  | slot_count_left   | int8 | 空闲slot数量。                      |
     
  
- remote_aio_slot_usage_status() 描述：显示其他实例中异步I/O提交槽位的相关统计信息。
  返回值类型：record
  表12remote_aio_slot_usage_status返回值说明 
  | 参数                  | 类型    | 描述                    |
  |:---|:---|:---|
  | node_name             | text    | 其他实例名称。               |
  | slot_id              | int4   | 槽位id。                 |
  | slot_type             | char    | 槽位类型（r：读，w：写）。       |
  | status                | bool   | 槽位占用状态。               |
  | buffer_id            | int8  | 该槽位对应的buffer id。      |
  | relfilenode_blocknum | text | 该槽位对应的buffer所在的物理页面位置。 |
  | lsn                   | int8   | 页面对应的LSN。           |
  | submitted_time       | int8 | 页面异步提交时的时间。          |
  | elapsed_time         | int8 | 页面已经等待的时间。             |
     
  
- gs_get_io_type()
  描述：显示本实例的I/O模式。
  返回值类型：text
  - BIO：表示当前实例正以BIO模式运行（即ADIO未打开）。
  
  - DIO：表示当前实例正以DIO模式运行（即ADIO已打开）。
  
  - BIO-\>DIO (In progress)：表示当前实例正在从BIO到DIO模式的切换过程中。
   
- local_bgwriter_stat() 描述：显示本实例的bgwriter线程刷页信息。
  返回值类型：record
  表13local_bgwriter_stat返回值说明 
  | 参数                           | 类型   | 描述                                        |
  |:---|:---|:---|
  | node_name                    | text  | 当前实例名称。                                   |
  | bgwr_actual_flush_total_num | int8 | 自从上次重启到现在，bgwriter线程刷脏总数（单位：页）。             |
  | bgwr_last_flush_num          | int4 | 自从上一轮刷脏到现在，bgwriter线程刷脏数量（单位：页）。             |
  | candidate_slots              | int4  | 候选者队列中可用于缓存页面申请的数量。                        |
  | get_buffer_from_list         | int8 | 自从上次重启到现在，从候选者队列中获取缓存页面的数量（单位：页）。          |
  | get_buf_clock_sweep           | int8    | 自从上次重启到现在，从clock sweep机制中获取缓存页面的数量（单位：页）。 |
     
  
- local_candidate_stat() 描述：显示本实例的候选buffer链中页面个数，buffer淘汰信息，包含normal buffer pool和segment buffer pool。
  返回值类型：record
  
- gs_buffer_manager_info() 描述：打印当前数据库从上一次调用该函数（如未执行过则为启动时）到现在的缓冲区的页面访问数和未命中数量，以及读取率（即1-命中率），以及智能淘汰算法给出淘汰队列的每个轮次的休眠时间。
  Total access: %lu, Total read: %lu, Read rate: %0.3f, Sleep time :%u
  返回值类型：text
  
- local_ckpt_stat() 描述：显示本实例的检查点信息和各类日志刷页情况。
  返回值类型：record
  
- local_double_write_stat() 描述：显示本实例的双写文件的情况。
  返回值类型：record
  表14local_double_write_stat参数说明 
  | 参数                     | 类型     | 描述                                     |
  |:---|:---|:---|
  | node_name              | text     | 实例名称。                                 |
  | curr_dwn             | int8    | 当前双写文件的序列号。                             |
  | curr_start_page      | int8 | 当前双写文件恢复起始页面。                         |
  | file_trunc_num       | int8   | 当前双写文件复用的次数。                           |
  | file_reset_num         | int8  | 当前双写文件写满后发生重置的次数。                     |
  | total_writes         | int8    | 当前双写文件总的I/O次数。                          |
  | low_threshold_writes  | int8    | 低效率写双写文件的I/O次数（一次I/O刷页数量少于16页面）。       |
  | high_threshold_writes | int8 | 高效率写双写文件的I/O次数（一次I/O刷页数量多于一批，421个页面）。 |
  | total_pages           | int8   | 当前刷页到双写文件区的总的页面个数。                     |
  | low_threshold_pages    | int8    | 低效率刷页的页面个数。                            |
  | high_threshold_pages | int8   | 高效率刷页的页面个数。                             |
  | file_id                | int8    | 当前双写文件的id号。                             |
     
  
- local_pagewriter_running_stat() 描述：显示本实例批量刷脏线程的线程运行状态情况。
  返回值类型：record
  表15local_pagewriter_running_stat()参数说明 
  | 参数类型  | 参数                        | 类型      | 描述               |
  |:---|:---|:---|:---|
  | 输出参数 | nodename                | text     | 实例名称。             |
  | 输出参数  | tid                    | int8     | pagewriter线程id。   |
  | 输出参数    | type                    | text       | 线程类型。           |
  | 输出参数  | extre_start_loc       | int8      | 极致刷脏推进的位置。        |
  | 输出参数 | extre_left_size         | int4      | 极致刷脏上一轮跳过待刷的脏页数量。 |
  | 输出参数   | full_ckpt                 | bool     | 是否处于全量刷脏模式。        |
  | 输出参数 | shutdown_progress         | bool       | 退出状态。            |
  | 输出参数    | buf_id_start           | int4    | 扫描线程范围起始buf_id。   |
  | 输出参数   | buf_id_end              | int4     | 扫描线程结束buf_id。     |
  | 输出参数   | standby_buf_start_id   | int4       | 备机读扫描线程起始buf_id。 |
  | 输出参数  | standby_buf_end_id      | int4      | 备机读扫描线程结束buf_id。 |
  | 输出参数 | exception_count           | int4       | 线程历史累计异常数量。     |
  | 输出参数  | recent_exception_time | timestamptz | 最近一次异常的时间戳。        |
     
  
- local_pagewriter_accumulate_stat() 描述：显示本实例在输入时间范围内的批量刷脏线程的带宽和锁冲突统计情况。
  返回值类型：record
  表16local_pagewriter_accumulate_stat()参数说明 
  | 参数类型   | 参数                    | 类型    | 描述             |
  |:---|:---|:---|:---|
  | 输入参数 | last_time            | int8    | 统计的时间长度(秒)。   |
  | 输出参数  | nodename              | text   | 实例名称。         |
  | 输出参数    | tid                    | int8   | pagewriter线程id。 |
  | 输出参数   | type                   | text     | 线程类型。           |
  | 输出参数   | bandwidth             | float8 | 平均带宽(MB/s)。      |
  | 输出参数  | lock_conflict_count    | int8    | 因为内容锁冲突跳过的页面数量。  |
  | 输出参数   | avg_pagewriter_sleep | float8 | 真实的平均刷脏周期。    |
     
  
- local_dirty_queue_advance_stat() 描述：显示本实例脏页队列的推进情况。
  返回值类型：record
  表17local_dirty_queue_advance_stat()参数说明 
  | 参数类型   | 参数                           | 类型   | 描述                                 |
  |:---|:---|:---|:---|
  | 输出参数   | nodename                        | text | 实例名称。                             |
  | 输出参数 | dirty_queue_head             | int8   | 脏页队列头的位置。                         |
  | 输出参数 | dirty_queue_tail              | int8  | 脏页队列尾的位置。                        |
  | 输出参数   | dirty_queue_size              | int8   | 脏页队列大小。                           |
  | 输出参数    | dirty_queue_full               | bool   | 脏页队列是否满。                            |
  | 输出参数   | head_buffer                   | int4    | 脏页队列头的buffer值。                    |
  | 输出参数  | head_buffer_lsn               | text    | 脏页队列头的页面lsn。                      |
  | 输出参数   | head_buffer_content_lock_id | int8  | 脏页队列头buffer的内容锁的lock_unique_id。   |
  | 输出参数   | head_buffer_io_lock_id        | int8     | 脏页队列头buffer的I/O锁的lock_unique_id。 |
  | 输出参数 | extre_scan_current             | int8    | 极致刷脏已经分配给刷脏线程的脏页队列的结束位置。        |
     
  
- local_single_flush_dw_stat() 描述：显示本实例的单页面淘汰双写文件的情况。
  返回值类型：record
  
- local_pagewriter_stat() 描述：显示本实例的刷页信息和检查点信息。
  返回值类型：record
  表18local_pagewriter_stat()参数说明 
  | 参数类型    | 参数                           | 类型     | 描述                            |
  |:---|:---|:---|:---|
  | 输出参数   | node_name                    | text   | 实例名称。                          |
  | 输出参数 | pgwr_actual_flush_total_num | int8  | 从启动到当前时间刷脏页的总计数量。             |
  | 输出参数   | pgwr_last_flush_num           | int4  | 上一批刷脏页数量。                   |
  | 输出参数   | remain_dirty_page_num        | int8   | 当前预计剩余的脏页数量。                   |
  | 输出参数   | queue_head_page_rec_lsn       | text | 当前实例的脏页队列第一个脏页的recovery_lsn。 |
  | 输出参数      | queue_rec_lsn                  | text    | 当前实例的脏页队列的recovery_lsn。         |
  | 输出参数  | current_xlog_insert_lsn      | text   | 当前实例Xlog写入的位置，备机查询时该值无效。      |
  | 输出参数   | ckpt_redo_point                | text   | 当前实例的检查点。                     |
     
  
- local_redo_stat() 描述：显示本实例的备机的当前回放状态。
  返回值类型：record
  备注：返回的回放状态主要包括当前回放位置，回放最小恢复点位置等信息。
  
- local_recovery_status() 描述：显示本实例的主机和备机的日志流控信息。
  返回值类型：record
  
- local_rto_status() 描述：显示本实例的主机和备机的日志流控信息。
  返回值类型：record
  
- gs_wlm_switch_cgroup(sess_id int8, cgroup name) 描述：切换指定会话的控制组。
  返回值类型：record
  
- comm_client_info() 描述：用于查询单个节点活跃的客户端连接信息，返回结果解释见[COMM_CLIENT_INFO](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-1086.html)。
  返回值类型：setof record
  
- pg_get_flush_lsn() 描述：返回当前节点flush的Xlog位置。
  返回值类型：text
  
- pg_get_sync_flush_lsn() 描述：返回当前节点多数派flush的Xlog位置。
  返回值类型：text
  
- pgxc_wlm_rebuild_user_resource_pool() 描述：重新构建用户及资源池缓存信息。需要系统管理员权限才可以执行该函数。
  返回值类型：boolean
  
- locktag_decode(locktag text) 描述：从locktag中解析锁的具体信息。
  示例：
  ```
  gaussdb=# SELECT locktag_decode('271b:0:0:0:0:6');
                 locktag_decode
  ---------------------------------------------
   locktype:transactionid, transactionid:10011
  (1 row)
  ```
  返回值类型：text
  
- disable_conn(disconn_mode text, host text, port integer) 描述：CM Agent处理CM Server下发的命令，在DN进行选主时设置该DN拒绝连接所有DN、强制连接某个DN或轮询连接所有DN。只有初始化用户和系统管理员才可以调用该函数。
  返回值类型：void
  表19disable_conn参数说明 
  | 参数          | 类型       | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
  |:---|:---|:---|
  | disconn_mode | text    | DN连接模式： - 'prohibit_connection' - 拒绝连接所有DN。  - 'specify_connection' - 强制连接某个DN。  - 'polling_connection' - 轮询连接所有DN。   |
  | host        | text    | DN的IP。                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  | port       | integer | DN的端口号。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
     
  
- dbe_perf.get_global_full_sql_by_timestamp(start_timestamp timestamp with time zone, end_timestamp timestamp with time zone) 描述：获取集群级的全量SQL(Full SQL)信息。只可在系统库中查询到结果，用户库中无法查询。
  返回值类型：record
  表20dbe_perf.get_global_full_sql_by_timestamp参数说明 
  | 参数               | 类型                         | 描述                                                          |
  |:---|:---|:---|
  | start_timestamp | timestamp with time zone | SQL启动时间范围的开始时间点。                                          |
  | end_timestamp   | timestamp with time zone  | SQL启动时间范围的结束时间点。若start_timestamp\>=end_timestamp，则函数执行报错。 |
     
  
- dbe_perf.get_global_slow_sql_by_timestamp(start_timestamp timestamp with time zone, end_timestamp timestamp with time zone) 描述：获取集群级的慢SQL(Slow SQL)信息。只可在系统库中查询到结果，用户库中无法查询。
  返回值类型：record
  表21dbe_perf.get_global_slow_sql_by_timestamp参数说明 
  | 参数              | 类型                       | 描述                                                          |
  |:---|:---|:---|
  | start_timestamp | timestamp with time zone  | SQL启动时间范围的开始时间点。                                          |
  | end_timestamp    | timestamp with time zone | SQL启动时间范围的结束时间点。若start_timestamp\>=end_timestamp，则函数执行报错。 |
     
  
- statement_detail_decode(detail text, format text, pretty boolean) 描述：解析全量/慢SQL语句中的details字段的信息。只可在系统库中查询到结果，用户库中无法查询。
  返回值类型：text
   表22statement_detail_decode参数说明 
  | 参数     | 类型       | 描述                                                                                                                                                                                                                                                                                                                               |
  |:---|:---|:---|
  | detail  | text     | SQL语句产生的事件的集合（不可读）。                                                                                                                                                                                                                                                                                                              |
  | format | text   | 解析输出格式，取值为plaintext。                                                                                                                                                                                                                                                                                                             |
  | pretty  | boolean | 当format为plaintext时，是否以优雅的格式展示： - true表示通过"\\n"分隔事件。  - false表示通过","分隔事件。   |
     
  
- pgxc_get_csn(tid) 描述：返回普通表的事务id对应的事务提交序号（CSN）。
  返回值类型：int8
  
- pgxc_get_csn(tid，bucketid) 描述：返回给定bucketid的事务id对应的事务提交序号（CSN），入参bucketid指hashbucket表的物理bucketid，普通表为-1。
  返回值类型：int8
  
- get_global_user_transaction() 描述：返回所有节点上各用户的事务相关信息。
  返回值类型：node_name name、usename name、commit_counter bigint、rollback_counter bigint、resp_min bigint、resp_max bigint、resp_avg bigint、resp_total bigint、bg_commit_counter bigint、bg_rollback_counter bigint、bg_resp_min bigint、bg_resp_max bigint、bg_resp_avg bigint、bg_resp_total bigint、dbid oid
  
- pg_collation_for() 描述：返回入参字符串对应的排序规则。
  参数：any（如果是常量必须进行显式类型转换）
  返回值类型：text
  
- pgxc_unlock_for_sp_database(databasename text) 描述：释放指定数据库锁。
  参数：databasename为数据库名称。
  返回值类型：Boolean
  备注：调用该函数的用户需要具有SYSADMIN权限。
  
- pgxc_lock_for_sp_database(databasename text) 描述：对指定的数据库加锁。
  参数：databasename为数据库名称。
  返回值类型：Boolean
  备注：调用该函数的用户需要具有SYSADMIN权限。
  
- pgxc_unlock_for_transfer(schemaname text) 描述：释放用于数据传输（数据重分布）锁。
  参数：schemaname为模式名称。
  返回值类型：Boolean
  备注：调用该函数的用户需要具有SYSADMIN权限。
  
- pgxc_lock_for_transfer(schemaname text) 描述：对数据库加锁，用于数据传输（数据重分布）。
  参数：schemaname为模式名称。
  返回值类型：Boolean
  备注：调用该函数的用户需要具有SYSADMIN权限。
  
- gs_comm_proxy_thread_status() 描述：用于在集群配置用户态网络的场景下，代理通信库comm_proxy收发数据包统计。该函数在当前版本不支持。
  参数：nan
  返回值类型：record
  
- gs_catalog_attribute_records() 描述：对于指定的系统表oid，返回该系统表对应的各个字段的定义。仅支持oid小于10000的普通系统表（不支持索引、toast表等）。
  参数：系统表oid。
  返回值类型：record
  
- dynamic_func_control(scope text, function_name text, action text, "{params}" text\[\]) 描述：动态开启内置的功能，当前仅支持动态开启全量SQL。
  返回值类型：record
  表23dynamic_func_control参数说明 
  | 参数           | 类型       | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
  |:---|:---|:---|
  | scope        | text     | 动态开启功能的范围，当前仅支持'GLOBAL'和'LOCAL'。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | function_name | text       | 功能的名称，当前仅支持'STMT'和'GSTRACE'。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | action      | text      | 当function_name为'STMT'时，action仅支持TRACK/UNTRACK/LIST/CLEAN（所有用户均可以使用LIST选项，其他选项必须具有系统管理员或MONADMIN权限才能使用）： - TRACK - 开始记录归一化SQL的全量SQL信息。  - UNTRACK - 取消记录归一化SQL的全量SQL信息。  - LIST - 列取当前TRACK的归一化SQL的信息。  - CLEAN - 清理记录当前归一化SQL的信息。   当function_name为'GSTRACE'时，action仅支持TRACE_SQL/TRACE_FUNC/UNTRACE_SQL/UNTRACE_FUNC/UNTRACE_ALL_SQL/UNTRACE_ALL_FUNC/LIST_TRACE_SQL/LIST_TRACE_FUNC/SHOW_TRACED_FUNC/SHOW_MANGLED_FUNC/SHOW_SUBFUNC： - TRACE_SQL - GSTrace注册指定跟踪的SQL语句。  - TRACE_FUNC - GSTrace注册指定跟踪的函数。  - UNTRACE_SQL - GSTrace取消注册指定跟踪的SQL语句。  - UNTRACE_FUNC - GSTrace取消注册指定跟踪的函数。  - UNTRACE_ALL_SQL - GSTrace取消全部SQL语句。  - UNTRACE_ALL_FUNC - GSTrace取消全部函数。  - LIST_TRACE_SQL - GSTrace查看配置的跟踪SQL语句。  - LIST_TRACE_FUNC - GSTrace查看配置的跟踪函数。  - SHOW_TRACED_FUNC - GSTrace查看正在跟踪的函数的状态。  - SHOW_MANGLED_FUNC - GSTrace查看指定函数mangle后的名称。  - SHOW_SUBFUNC - GSTrace指定函数的全部子函数。   |
  | params      | text\[\] | 当function_name为'STMT'时，对应不同action的params设置如下： - TRACK - '{"归一化SQLID", "L0/L1/L2"}'  - UNTRACK - '{"归一化SQLID"}'  - LIST - '{}'  - CLEAN - '{}'   当function_name为'GSTRACE'时，对应不同action的params设置如下： - TRACE_SQL - 请参见gstrace_reg_sql()函数入参说明。  - TRACE_FUNC - 请参见gstrace_reg_func()函数入参说明。  - UNTRACE_SQL - 请参见gstrace_unreg_sql()函数入参说明。  - UNTRACE_FUNC - 请参见gstrace_unreg_func()函数入参说明。  - UNTRACE_ALL_SQL - 请参见gstrace_unreg_all_sql()函数入参说明。  - UNTRACE_ALL_FUNC - 请参见gstrace_unreg_all_func()函数入参说明。  - LIST_TRACE_SQL - 请参见gstrace_list_configured_sql()函数入参说明。  - LIST_TRACE_FUNC - 请参见gstrace_list_configured_func()函数入参说明。  - SHOW_TRACED_FUNC - 请参见gstrace_show_traced_func()函数入参说明。  - SHOW_MANGLED_FUNC - 请参见gstrace_show_mangled_func()函数入参说明。  - SHOW_SUBFUNC - 请参见gstrace_show_subfunc()函数入参说明。                                                                                                      |
     
  
- gs_parse_page_bypath(path text, blocknum bigint, relation_type text, read_memory boolean) 描述：用于解析指定表页面，并返回存放解析内容的路径。
  返回值类型：text
  备注：必须是系统管理员或运维管理员才能执行此函数。对于未落盘的页面，由于磁盘上实际为空页，解析结果自然为空，且relation_type参数不生效。
  表24gs_parse_page_bypath参数说明 
  | 参数          | 类型     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
  |:---|:---|:---|
  | path          | text   | - 对于普通表，相对路径为：tablespace name/database oid/表的relfilenode(物理文件名)；例如：base/16603/16394。  - 对于普通表的visibility map，相对路径为：tablespace name/database oid/表的vm文件。例如：base/16603/16394_vm。  - 对于clog文件，相对路径为：pg_clog目录下的clog文件。例如：000000000000。  - 对于csnlog文件，相对路径为：pg_csnlog目录下的csnlog文件。例如：000000000000。  - 对于undo record文件，相对路径为：undo目录下的undo/UNDOPERSISTENCE/zoneid.segno。例如：undo/permanent/00000.0000009。  - 对于undo meta文件，相对路径为：undo目录下的undo/UNDOPERSISTENCE/zoneid.meta.segno。例如：undo/permanent/00000.meta.0000004。  - 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。  - 合法的path格式列举： - global/relNode。  - base/dbNode/relNode。  - pg_tblspc/spcNode/version_dir/dbNode/relNode。                                                                                                    |
  | blocknum   | bigint | - -1：所有block的信息（强制从磁盘解析）。  - 0\~MaxBlockNumber：对应block的信息。  - 对于BTree/UBTree索引，block 0为索引元页面。  - 对于undo record文件，采用逻辑块号，对应文件block大于等于segno\*128，小于（segno+1）\*128。  - 对于undo meta文件，采用逻辑块号，对应文件block大于等于segno\*4，小于（segno+1）\*4。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
  | relation_type | text     | - heap（astore表）。  - uheap（ustore表）。  - btree（BTree索引）。  - ubtree（UBTree索引）。  - vm（astore普通表的visibility map）。  - fsm（行存表的freespace map文件）。  - clog（事务状态日志commit log）。  - csnlog（快照时间戳日志commit sequence number log）。  - undo_slot（事务槽信息）。  - undo_record（undo 记录信息）。  - indexurq（indexurq页面）。  - ugin_index (ugin索引）  - gin_index (gin索引）  - gist_index (gist索引）  - cmap (跨页透明压缩元信息)  - pg_dw_turbo_compress (跨页透明压缩双写区)   |
  | read_memory   | boolean | - false，从磁盘文件解析。  - true，首先尝试从共享缓冲区中解析该页面；如果共享缓冲区中不存在，则从磁盘文件解析。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
     
  正常使用示例：
  ```
  # 解析BTree索引文件中所有页面的信息内容
  # 函数调用前请依据参数说明中的内容确保文件路径真实存在
  gaussdb=# SELECT gs_parse_page_bypath('base/16603/16394', -1, 'btree', false);
                          gs_parse_page_bypath                        
  --------------------------------------------------------------------
   gs_log_dir/dump/1663_16603_16394_-1.page
  (1 row)
  # 解析vm文件中所有block的可见性结果
  gaussdb=# SELECT gs_parse_page_bypath('base/12828/16771_vm', -1, 'vm', false);
                           gs_parse_page_bypath                          
  -----------------------------------------------------------------------
   gs_log_dir/dump/1663_12828_16771_-1_vm.page
  (1 row)
  # 解析clog文件中0号block的commit log日志
  gaussdb=# SELECT gs_parse_page_bypath('000000000000', 0, 'clog', false); 
                          gs_parse_page_bypath                        
  --------------------------------------------------------------------
   gs_log_dir/dump/000000000000.clog
  (1 row)
  ```
  异常场景报错示例：
  ```
  # 入参blocknum超出取值范围时报错
  gaussdb=# SELECT gs_parse_page_bypath('base/12828/16777', -10, 'heap', false);
  ERROR:  Blocknum should be between -1 and 4294967294.
  CONTEXT:  referenced column: gs_parse_page_bypath
  ```
  
- gs_xlogdump_lsn(start_lsn text, end_lsn text)
  描述：用于解析指定lsn范围之内的Xlog日志，并返回存放解析内容的路径。可以通过pg_current_xlog_location()获取当前Xlog位置。
  参数：start_lsn为LSN起始位置， end_lsn为LSN结束位置。
  返回值类型：text
  备注：必须是系统管理员或运维管理员才能执行此函数。
  
- gs_xlogdump_xid(c_xid xid)
  描述：用于解析指定xid的Xlog日志，并返回存放解析内容的路径。可以通过txid_current()获取当前事务ID。
  参数：c_xid为事务ID。
  返回值类型：text
  备注：必须是系统管理员或运维管理员才能执行此函数。
  
- gs_xlogdump_tablepath(path text, blocknum bigint, relation_type text) 描述：用于解析指定表页面对应的日志，并返回存放解析内容的路径。
  返回值类型：text
  备注：必须是系统管理员或运维管理员才能执行此函数。
  表25gs_xlogdump_tablepath参数说明 
  | 参数            | 类型  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  |:---|:---|:---|
  | path          | text  | - 对于普通表或段页式的普通表，相对路径为：tablespace name/database oid/表的relfilenode(物理文件名)。例如：base/16603/16394。  - 对于段页式的hashbucket表，相对路径为：tablespace name/database oid/Segment Head的逻辑页号_b(bucketid)。例如：base/16603/16394_b1437。  - 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。  - 合法的path格式列举： - global/relNode  - base/dbNode/relNode  - pg_tblspc/spcNode/version_dir/dbNode/relNode 对于hashbucket表，在此格式基础上，路径末尾加上_b段页式的逻辑页号。      |
  | blocknum     | bigint | - -1：所有block的信息（强制从磁盘解析）。  - 0\~MaxBlockNumber：对应block的信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
  | relation_type | text | - heap(astore 表)  - btree(BTree 索引)  - segment(段页式)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
     
  
- gs_xlogdump_parsepage_tablepath(path text, blocknum bigint, relation_type text, read_memory boolean) 描述：用于解析指定表页面和表页面对应的日志，并返回存放解析内容的路径。可以看做一次执行gs_parse_page_bypath和gs_xlogdump_tablepath。该函数执行的前置条件是表文件存在。如果想查看已删除的表的相关日志，请直接调用gs_xlogdump_tablepath。
  返回值类型：text
  备注：必须是系统管理员或运维管理员才能执行此函数。
  表26gs_xlogdump_parsepage_tablepath参数说明 
  | 参数             | 类型       | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  |:---|:---|:---|
  | path          | text    | - 对于普通表，相对路径为：tablespace name/database oid/表的relfilenode(物理文件名)；例如：base/16603/16394。  - 表文件的相对路径可以通过pg_relation_filepath(table_name text)查找。分区表的路径可以查看pg_partition系统表和调用pg_partition_filepath(partition_oid)。  - 合法的path格式列举： - global/relNode。  - base/dbNode/relNode。  - pg_tblspc/spcNode/version_dir/dbNode/relNode 对于hashbucket表，在此格式基础上，路径末尾加上_b段页式的逻辑页号。      |
  | blocknum        | bigint  | - -1：所有block的信息（强制从磁盘解析）。  - 0\~MaxBlockNumber：对应block的信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
  | relation_type | text   | - heap(astore 表)  - btree(BTree 索引)  - indexurq(indexurq 页面）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | read_memory | boolean | - false，从磁盘文件解析。  - true，首先尝试从共享缓冲区中解析该页面；如果共享缓冲区中不存在，则从磁盘文件解析。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
     
  
- gs_shared_storage_xlogdump_lsn(start_lsn text, end_lsn text, xlog_file_path text) 描述：用于解析Xlog日志共享盘的指定LSN范围之内的Xlog日志，并返回存放解析内容的路径。可以通过pg_current_xlog_location()获取当前Xlog位置。
  返回值类型：text
  备注：必须是系统管理员或运维管理员才能执行此函数。
  表27gs_shared_storage_xlogdump_lsn入参参数说明 
  | 参数                | 类型    | 描述                                                        |
  |:---|:---|:---|
  | start_lsn        | text  | 需要解析的Xlog的起始LSN。                                       |
  | end_lsn           | text    | 需要解析的Xlog的结束LSN。                                         |
  | xlog_file_path | text | 可选参数。需要解析的Xlog所在Xlog日志共享盘的路径。不指定时，解析当前CN/DN所有共享盘的Xlog。 |
     
  使用示例：
  ```
  # 支持两个入参，start_lsn与end_lsn
  gaussdb=# SELECT * FROM gs_shared_storage_xlogdump_lsn('00000000/01000000','00000000/19B08128');
                          output_filepath
  ----------------------------------------------------------------
   /var/lib/engine/data1/data/dn_6001/01000000_19b08128_6001.xlog
  (1 row)
  # 支持三个入参，start_lsn、end_lsn与xlog_file_path
  gaussdb=# SELECT * FROM gs_shared_storage_xlogdump_lsn('00000000/01000000','00000000/19B08128','/data/nfs/6001');
                          output_filepath
  ----------------------------------------------------------------
   /var/lib/engine/data1/data/dn_6001/01000000_19b08128_6001.xlog
  (1 row)
  ```
  
- gs_shared_storage_ctlinfo() 描述：用于获取当前CN/DN共享盘元数据相关信息。
  返回值类型：record
  表28gs_shared_storage_ctlinfo出参参数说明 
  | 参数名                   | 类型      | 描述                           |
  |:---|:---|:---|
  | xlog_file_path       | text   | Xlog日志共享盘的路径。               |
  | system_id               | text  | 当前Xlog日志共享盘上存储的system_id值。 |
  | term                   | text | 当前Xlog日志共享盘上存储的term值。       |
  | xlog_file_size          | text  | Xlog日志共享盘上存Xlog的空间大小。       |
  | insert_tail           | text   | Xlog日志共享盘上当前有效的最小LSN。         |
  | insert_head            | text  | Xlog日志共享盘上当前有效的最大LSN。         |
  | shared_storage_flush_lsn | text   | Xlog日志共享盘上当前实际落盘LSN。        |
     
  使用示例：
  ```
  gaussdb=# SELECT * FROM gs_shared_storage_ctlinfo();
   xlog_file_path |      system_id       | term | xlog_file_size |    insert_tail    |    insert_head    | shared_storage_flush_lsn
  ----------------+----------------------+------+----------------+-------------------+-------------------+--------------------------
   /data/nfs/6001 | 18020659526041888084 | 1    | 1073741824     | 00000000/01000000 | 00000000/19B08128 | 00000000/19B08128
  (1 row)
  ```
  
- gs_index_verify(oid oid, uint32 blkno) 描述：用于校验UBtree索引页面或者索引树上key的顺序是否正确。
  返回值类型：record
  表29gs_index_verify参数说明 
  | 参数        | 类型       | 描述                                                                                                                                                                                                                                                    |
  |:---|:---|:---|
  | oid     | oid      | - 索引文件relfilenode，可以通过SELECT relfilenode FROM pg_class where relname='name'查询，其中name表示对应的索引文件名字。                                                        |
  | blkno | uint32 | - 0：表示检验整个索引树上所有页面。  - 大于0：表示校验页面编码等于blkno的索引页面。   |
     
  
- gs_index_recycle_queue(Oid oid, int type, uint32 blkno) 描述：用于解析UBtree索引回收队列信息。
  返回值类型：record
  表30gs_index_recycle_queue参数说明 
  | 参数    | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                   |
  |:---|:---|:---|
  | oid  | oid    | - 索引文件relfilenode,可以通过select relfilenode from pg_class where relname='name'查询，其中name表示对应的索引文件名字。                                                                                                                                                   |
  | type    | int      | - 0：表示解析整个待回收队列。  - 1：表示解析整个空页队列。  - 2：表示解析单个页面。   |
  | blkno | uint32 | 回收队列页面编号，该参数只有在type=2的时候有效，blkno有效取值范围为1\~4294967294。                                                                                                                                                                                                                                                                                                  |
     
  
- gs_stat_wal_entrytable(int64 idx) 描述：用于输出Xlog中预写日志插入状态表的内容。
  返回值类型：record
  表31gs_stat_wal_entrytable参数说明 
  | 参数类型   | 参数名     | 类型        | 描述                                                                                                                                                                                                                                                                                                                         |
  |:---|:---|:---|:---|
  | 输入参数 | idx    | int64   | - -1：查询数组所有元素。  - 0-最大值：具体某个数组元素内容。                                                                                    |
  | 输出参数 | idx   | uint64  | 记录对应数组中的下标。                                                                                                                                                                                                                                                                                                                |
  | 输出参数  | endlsn | uint64  | 记录的LSN标签。标识当前entry对应的Xlog是否已经完全复制到wal buffer中： - 0：非COPIED。  - 非0：COPIED。   |
  | 输出参数     | lrc     | int32   | 记录对应的LRC。                                                                                                                                                                                                                                                                                                                  |
  | 输出参数  | status | uint32 | 当前版本预留字段，查询结果显示为0。                                                                                                                                                                                                                                                                                                        |
     
  
- gs_walwriter_flush_position() 描述：输出预写日志的刷新位置。
  返回值类型：record
  表32gs_walwriter_flush_position参数说明 
  | 参数类型 | 参数名                    | 类型        | 描述                                                                               |
  |:---|:---|:---|:---|
  | 输出参数 | last_flush_status_entry | int32   | Xlog flush上一个刷盘的tblEntry下标索引。                                                     |
  | 输出参数 | last_scanned_lrc       | int32     | Xlog flush上一次扫描到的最后一个tblEntry记录的LRC。                                                |
  | 输出参数    | curr_lrc               | int32    | WALInsertStatusEntry状态表中LRC最新的使用情况，该LRC表示下一个Xlog记录写入时在WALInsertStatusEntry对应的LRC值。 |
  | 输出参数 | curr_byte_pos            | uint64    | Xlog记录写入WAL 文件，最新分配的位置，下一个Xlog记录插入点。                                                |
  | 输出参数  | prev_byte_size         | uint32   | 上一个Xlog记录的长度。                                                                      |
  | 输出参数  | flush_result            | uint64 | 当前全局Xlog刷盘的位置。                                                                     |
  | 输出参数  | send_result            | uint64   | 当前主机上Xlog发送位置。                                                                       |
  | 输出参数  | shm_rqst_write_pos      | uint64    | 共享内存中记录的XLogCtl中LogwrtRqst请求的write位置。                                                 |
  | 输出参数    | shm_rqst_flush_pos         | uint64     | 共享内存中记录的XLogCtl中LogwrtRqst请求的flush位置。                                               |
  | 输出参数    | shm_result_write_pos    | uint64    | 共享内存中记录的XLogCtl中LogwrtResult的write位置。                                                 |
  | 输出参数  | shm_result_flush_pos    | uint64   | 共享内存中记录的XLogCtl中LogwrtResult的flush位置。                                               |
  | 输出参数   | curr_time               | text    | 当前时间。                                                                            |
     
  
- gs_walwriter_flush_stat(int operation) 描述：用于统计预写日志write与sync的次数频率与数据量，以及Xlog文件的信息。
  返回值类型：record
  表33gs_walwriter_flush_stat参数说明 
  | 参数类型  | 参数名                         | 类型         | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
  |:---|:---|:---|:---|
  | 输入参数   | operation                   | int  | - -1： 关闭统计开关(默认状态为关闭)。  - 0：打开统计开关。  - 1：查询统计信息。  - 2：重置统计信息。   |
  | 输出参数    | write_times                  | uint64     | Xlog调用write接口的次数。                                                                                                                                                                                                                                                                                                                                                                                                                                              |
  | 输出参数    | sync_times                  | uint64   | Xlog调用sync接口次数。                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | 输出参数  | total_xlog_sync_bytes       | uint64      | Backend线程请求写入Xlog总量统计值。                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  | 输出参数   | total_actual_xlog_sync_bytes | uint64   | 调用sync接口实际刷盘的Xlog总量统计值。                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  | 输出参数   | avg_write_bytes             | uint32    | 每次调用XLogWrite接口请求写的Xlog量。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | 输出参数    | avg_actual_write_bytes      | uint32    | 实际每次调用write接口写的Xlog量。                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  | 输出参数   | avg_sync_bytes                | uint32  | 平均每次请求sync的Xlog量。                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | 输出参数  | avg_actual_sync_bytes       | uint32     | 实际每次调用sync刷盘Xlog量。                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | 输出参数 | total_write_time             | uint64    | 调用write操作总时间统计(单位：us)。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  | 输出参数  | total_sync_time              | uint64    | 调用sync操作总时间统计(单位：us)。                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  | 输出参数    | avg_write_time               | uint32  | 每次调用write接口平均时间(单位：us)。                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | 输出参数   | avg_sync_time               | uint32   | 每次调用sync接口平均时间(单位：us)。                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | 输出参数   | curr_init_xlog_segno         | uint64      | 当前最新创建的Xlog段文件编号。                                                                                                                                                                                                                                                                                                                                                                                                                                                |
  | 输出参数    | curr_open_xlog_segno         | uint64      | 当前正在写的Xlog段文件编号。                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | 输出参数   | last_reset_time              | text       | 上一次重置统计信息的时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
  | 输出参数  | curr_time                      | text      | 当前时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
     
  
- pg_ls_tmpdir() 描述：返回默认表空间下临时目录（pgsql_tmp）中每个文件的名称、大小和最后修改时间。
  参数：nan
  返回值类型：record
  备注：必须是系统管理员或者监控管理员才能执行此函数。
  
  | 参数类型 | 参数名           | 类型           | 描述             |
  |:---|:---|:---|:---|
  | 输出参数  | name         | text            | 文件名称。          |
  | 输出参数   | size         | int8         | 文件大小（单位：byte）。 |
  | 输出参数 | modification | timestamptz | 文件最后修改时间。      |
     
  
- pg_ls_tmpdir(oid) 描述：返回指定表空间下临时目录（pgsql_tmp）中每个文件的名称、大小和最后修改时间。
  参数：oid
  返回值类型：record
  备注：必须是系统管理员或者监控管理员才能执行此函数。
  
  | 参数类型    | 参数名        | 类型          | 描述              |
  |:---|:---|:---|:---|
  | 输入参数 | oid       | oid         | 表空间id。       |
  | 输出参数   | name       | text         | 文件名称。         |
  | 输出参数  | size         | int8         | 文件大小（单位：byte）。 |
  | 输出参数  | modification | timestamptz | 文件最后修改时间。       |
     
  
- pg_ls_waldir() 描述：返回预写日志(WAL)目录中每个文件的名称、大小和最后修改时间。
  参数：nan
  返回值类型：record
  备注：必须是系统管理员或者监控管理员才能执行此函数。
  
  | 参数类型 | 参数名          | 类型          | 描述               |
  |:---|:---|:---|:---|
  | 输出参数 | name         | text       | 文件名称。           |
  | 输出参数 | size         | int8       | 文件大小（单位：byte）。 |
  | 输出参数 | modification | timestamptz | 文件最后修改时间。      |
     
  
- gs_stat_anti_cache() 描述：返回AntiCache的相关统计信息。
  参数：nan
  返回值类型：record
  
  | 参数类型    | 参数名                            | 类型      | 描述               |
  |:---|:---|:---|:---|
  | 输出参数  | table_nums                  | int8    | 分区数量。         |
  | 输出参数    | table_init_size            | int8     | 分区初始大小。        |
  | 输出参数   | table_max_size              | int8    | 分区大小上限。        |
  | 输出参数   | anti_cache_upper_limit_size | int8    | AntiCache大小上限。 |
  | 输出参数   | anti_cache_size            | int8   | 实时AntiCache大小。 |
  | 输出参数 | anti_cache_max_table_size   | int8 | 实时最大分区大小。       |
  | 输出参数 | anti_cache_min_table_size     | int8    | 实时最小分区大小。      |
     
  
- gs_stat_vlog_buffer() 描述：返回verifyLog buffer的相关统计信息。
  参数：nan
  返回值类型：record
  
  | 参数类型  | 参数名                        | 类型     | 描述          |
  |:---|:---|:---|:---|
  | 输出参数   | vbuffer_write_offset       | int8 | vlog写入位置。     |
  | 输出参数 | vbuffer_flushed_offset      | int8   | vlog刷盘位置。      |
  | 输出参数  | max_vbuffer_flushed_value  | int8   | vlog下刷最大字节数。  |
  | 输出参数   | min_vbuffer_flushed_vlaue  | int8  | vlog下刷最小字节数。 |
  | 输出参数  | ave_vbuffer_flushed_vlaue | int8   | vlog下刷平均字节数。  |
  | 输出参数   | vbuffer_flush_latency      | int8   | vlog下刷时延统计。  |
     
  
- gs_stat_vlog_related_io() 描述：返回verifylog文件读写的io相关统计信息。
  参数：nan
  返回值类型：record
  
  | 参数类型 | 参数名              | 类型       | 描述           |
  |:---|:---|:---|:---|
  | 输出参数  | read_data_iops | float8 | 每秒读文件的页面数。    |
  | 输出参数 | vlog_read_iops    | float8     | 每秒读vlog的页面数。 |
  | 输出参数  | vlog_write_iops     | float8  | 每秒写vlog的页面数。  |
     
  
- gs_stat_vlog_file() 描述：查询还有哪些Vlog（Verifylog）文件未回收。
  参数：nan
  返回值类型：record
  
  | 参数类型  | 参数名                  | 类型   | 描述                |
  |:---|:---|:---|:---|
  | 输出参数    | last_recycled_segno | int8   | 已完成回收的最后一个Vlog文件段号。 |
  | 输出参数 | target_recycle_segno | int8 | 当前待回收的目标Vlog文件段号。    |
  | 输出参数  | max_segno          | int8   | 当前最大的Vlog文件段号。    |
     
  
- pause_anti_cache_recycle(boolean pause) 描述：设置是否暂停AntiCache回收。本函数仅供内部使用。
  参数：pause表示是否暂停AntiCache回收，类型为boolean。pause为true表示AntiCache暂停回收，pause为false表示AntiCache正常回收。
  返回值类型：text
  示例：
  ```
  #在内部版本中，设置AntiCache正常回收
  gaussdb=# select * from pause_anti_cache_recycle(false);
             result           
  ----------------------------
   Anticache recycle resumed.
  (1 row)
  #在内部版本中，设置AntiCache暂停回收
  gaussdb=# select * from pause_anti_cache_recycle(true);
            result           
  ---------------------------
   Anticache recycle paused.
  (1 row)
  #在正式版本中，不支持设置
  gaussdb=# select * from pause_anti_cache_recycle(false);
                           result                          
  ---------------------------------------------------------
   This function is not allowed to use in release version.
  (1 row)
  ```
  
- gs_write_term_log(void) 描述：写入一条日志记录DN节点当前的term值。备DN节点返回false，主DN节点写入成功后返回true。
  返回值类型：Boolean
  
- gs_stat_space(bool init) 描述：用于查询UStore中做Insert操作时拓展页面的状态。
  返回值类型：record
  
  | 参数类型 | 参数名                 | 类型     | 描述                                               |
  |:---|:---|:---|:---|
  | 输入参数   | init                 | bool   | 是否重置已统计的数据。                                     |
  | 输出参数   | access_func            | int8 | relation_get_buffer_for_utuple接口访问总次数。          |
  | 输出参数   | cache_blk           | int8 | relation_get_buffer_for_utuple获取缓存次数。            |
  | 输出参数   | cache_succ           | int8   | relation_get_buffer_for_utuple获取缓存成功次数。           |
  | 输出参数  | nblk_first         | int8  | relation_get_buffer_for_utuple中第一次获取nblocks-1次数。  |
  | 输出参数    | nblk_first_succ       | int8     | relation_get_buffer_for_utuple中第一次获取nblocks-1成功次数。 |
  | 输出参数   | nblk_second             | int8     | relation_get_buffer_for_utuple中第二次获取nblocks-1次数。     |
  | 输出参数   | nblk_second_succ      | int8    | relation_get_buffer_for_utuple中第二次获取nblocks-1成功次数。 |
  | 输出参数    | fsm_first            | int8   | 第一次访问FSM次数。                                       |
  | 输出参数   | fsm_first_success    | int8    | 第一次访问FSM成功次数。                                     |
  | 输出参数    | fsm_rewrite          | int8     | FSM回写次数。                                            |
  | 输出参数    | fsm_second           | int8     | 第二次访问FSM次数。                                         |
  | 输出参数    | fsm_second_success     | int8   | 第二次访问FSM成功次数。                                     |
  | 输出参数   | prune_count        | int8   | relation_get_buffer_for_utuple中Prune次数。            |
  | 输出参数   | prune_space         | int8 | relation_get_buffer_for_utuple中Prune总空间。          |
  | 输出参数   | coprune_count         | int8     | 联合清理执行次数。                                          |
  | 输出参数   | coprune_scan_blocks   | int8     | 联合清理扫描总页数。                                         |
  | 输出参数     | coprune_prune_count  | int8    | 联合清理Prune次数。                                       |
  | 输出参数   | coprune_prune_space | int8   | 联合清理Prune总空间。                                    |
  | 输出参数    | con_extend_count     | int8  | 并发扩页数量。                                            |
  | 输出参数    | con_extend_time       | int8    | 并发扩页总时间。                                           |
  | 输出参数    | single_extend_time    | int8   | 单一扩页次数。                                           |
     
  示例：
  ```
  gaussdb=# SELECT * FROM gs_stat_space(false);
   access_func | cache_blk | cache_succ | nblk_first | nblk_first_succ | nblk_second | nblk_second_succ | fsm_first | fsm_first_success | fsm_rewrite | fsm_
  second | fsm_second_success | prune_count | prune_space | coprune_count | coprune_scan_blocks | coprune_prune_count | coprune_prune_space | con_extend_count
   | con_extend_time | single_extend_count
  -------------+-----------+------------+------------+-----------------+--------------+-------------------+-----------+-------------------+-------------+-----
  -------+--------------------+-------------+-------------+---------------+---------------------+---------------------+---------------------+-----------------
  -+-----------------+---------------------
      10082397 |  10082397 |   10082235 |         88 |              78 |        47021 |             47021 |       162 |                74 |      360996 |
  360996 |             270948 |        6711 |           0 |         45497 |              222619 |                   0 |                   0 |             3675
   |        25542884 |               26791
  (1 row)
  ```
  备注：请重点关注cache_succ此值较小说明系统缓存失效，prune_space 此值较小表示UStore数据页页面清理机制可能存在问题，con_extend_time此值过高可能表明UStore并发拓页时耗时较高。
  
  
- gs_redo_upage(directory_path text, backup_path text, blocknum bigint, relation_type text, xlog_path text, lsn text) 描述：用于将备份的特定UStore数据页面重放到指定LSN，并在重放期间校验页面，若检测到页面受损则直接落盘该坏块，返回落盘路径、页面LSN以及受损信息，否则重放至指定LSN并落盘页面后返回，必须是系统管理员或运维管理员才能执行此函数。
  返回值类型：record
  
  | 参数类型   | 参数              | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  |:---|:---|:---|:---|
  | 输入参数  | directory_path | text    | 备份文件所在目录。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
  | 输入参数  | backup_path     | text     | 备份表文件的相对路径，与备份文件所在目录拼成表文件的完整路径，例如，base/15635/12488，当备份不存在时，传入null。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
  | 输入参数   | blocknum         | bigint | 0\~MaxBlockNumber：对应页面的块号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  | 输入参数    | relation_type  | text   | - uheap（Ustore数据页）。  - ubtree（Ustore索引页）。  - indexurq（Urq页面）。  - undo_record（Undo record页面）。  - undo_slot（Transaction slot页面）。   |
  | 输入参数     | xlog_path       | text      | 归档日志目录的绝对路径。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  | 输入参数  | lsn              | text   | lsn由两个16进制数(各32 bits)组成，中间通过"/"隔开，例如：2/962D1DF8。如果是0则重放到最新版本。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | 输出参数 | output_filename | text    | 文件的落盘路径与文件名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | 输出参数  | output_lsn      | text     | 最后一次页面重放的LSN。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
  | 输出参数  | corruption_desc   | text    | 页面受损情况描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
     
  
- gs_xlogdump_bylastlsn(last_lsn text, blocknum bigint, relation_type text) 描述：传入一个页面LSN以及块号，解析LSN对应的WAL日志，并获取对应块号的last LSN继续解析，直到last LSN为0或者更老版本的WAL日志已被复用回收，并将解析后的日志落盘到指定路径，必须是系统管理员或运维管理员才能执行此函数。本系统函数不支持备机调用。
  返回值类型：text
  
  | 参数类型  | 参数名             | 类型    | 描述                                                                                                                                                       |
  |:---|:---|:---|:---|
  | 输入参数  | last_lsn          | text   | 解析指定页面的LSN，基于十六进制表示，如12BA/32CDEDDD，LSN可通过页面解析工具（gs_parse_page_bypath等）获取。                                                                                   |
  | 输入参数 | blocknum        | bigint | 指定页面的逻辑块号。 参数范围：-1\~MaxBlockNumber。 块号指定为-1时表示从WAL日志中获取默认块号。 |
  | 输入参数   | relation_type      | text  | 指定解析页面的类型。 参数范围：uheap、ubtree、heap、btree、undo_record、undo_slot。                                                 |
  | 输出参数   | output_filepath | text   | WAL日志解析结果的落盘路径。                                                                                                                                         |
     
  示例：
  ```
  # 获取页面LSN信息
  # 函数调用前请依据参数说明中的内容确保文件路径真实存在
  gaussdb=# SELECT * FROM gs_parse_page_bypath('base/15833/16768', 0, 'uheap', false);
                          output_filepath
  ---------------------------------------------------------------
   data1/database/cluster/primary/data/1663_15833_16768_0.page
  (1 row)
  gaussdb=# SELECT * FROM gs_xlogdump_bylastlsn('0/4593570', -1, 'uheap');
                          output_filepath
  -------------------------------------------------------------------
   /data1/database/cluster/primary/data/gs_log/dump/4593570_-1.xlog
  (1 row)
  gaussdb=# SELECT * FROM gs_xlogdump_bylastlsn('0/4593570', 0, 'ubtree');
  ERROR:  The input lsn 0/4593570 related xlog is not ubtree.
  ```
  
- dbe_perf.get_full_sql_by_parent_id_and_timestamp(parent_id bigint, start_timestamp timestamp with time zone, end_timestamp timestamp with time zone) 描述：根据parent_id获取某个时间段内，执行某个存储过程的数据库级的全量SQL及其子语句的记录。只可在系统库中查询到结果，用户库中无法查询。
  返回值类型：record
  
  | 参数              | 类型                       | 描述                             |
  |:---|:---|:---|
  | parent_id       | bigint                    | 指定需要检索的存储过程的调用语句的unique_sql_id。 |
  | start_timestamp | timestamp with time zone   | SQL启动时间范围的开始时间点。             |
  | end_timestamp     | timestamp with time zone | SQL启动时间范围的结束时间点。               |
     
  示例：
  ```
  gaussdb=# CREATE TABLE test(a int,b int);
  NOTICE:  The 'DISTRIBUTE BY' clause is not specified. Using 'a' as the distribution column by default.
  HINT:  Please use 'DISTRIBUTE BY' clause to specify suitable data distribution column.
  CREATE TABLE
  gaussdb=# INSERT INTO test values(1,1);
  INSERT 0 1
  gaussdb=# CREATE PROCEDURE mypro1() as num int;
  gaussdb$# begin
  gaussdb$# INSERT INTO test values(2,2);
  gaussdb$# DELETE FROM test where a = 2;
  gaussdb$# end;
  gaussdb$# /
  CREATE PROCEDURE
  --打开参数，跟踪存储过程子语句。
  gaussdb=# SET instr_unique_sql_track_type = 'all';
  SET
  --打开参数，dbe_perf.statement_history表生成全量语句记录。
  gaussdb=# SET track_stmt_stat_level = 'L0,L0';
  SET
  gaussdb=# CALL mypro1();
   mypro1
  --------
  (1 row)
  gaussdb=# SET track_stmt_stat_level = 'off,L0';
  SET
  gaussdb=# SET instr_unique_sql_track_type = 'top';
  SET
  --查询关键信息，作为函数参数使用。
  gaussdb=# SELECT query,unique_query_id,start_time,finish_time FROM dbe_perf.statement_history;
                  query                 | unique_query_id |          start_time           |          finish_time
  --------------------------------------+-----------------+-------------------------------+-------------------------------
   set track_stmt_stat_level = 'L0,L0'; |       636388010 | 2023-06-02 17:40:49.176155+08 | 2023-06-02 17:40:49.176543+08
   call mypro1();                       |       536458473 | 2023-06-02 17:40:59.028144+08 | 2023-06-02 17:40:59.032027+08
   delete from test where a = ?         |       583323884 | 2023-06-02 17:40:59.029955+08 | 2023-06-02 17:40:59.031577+08
   insert into test values(?,?)         |       769279931 | 2023-06-02 17:40:59.029219+08 | 2023-06-02 17:40:59.029947+08
  (4 rows)
  --通过外层语句的unique_query_id、外层语句的开始和结束时间作为参数，查询该时间段内，指定存储过程及其子语句的信息。
  gaussdb=# SELECT query FROM dbe_perf.get_full_sql_by_parent_id_and_timestamp(536458473,'2023-06-02 17:40:59.028144+08','2023-06-02 17:40:59.032027+08');
              query
  ------------------------------
   call mypro1();
   delete from test where a = ?
   insert into test values(?,?)
  (3 rows)
  gaussdb=# DROP PROCEDURE mypro1();
  DROP PROCEDURE
  gaussdb=# DROP TABLE test;
  DROP TABLE
  ```
  
- gs_index_dump_read(int8 reset, text out_type) 描述：用于查询索引获取新页面时在循环队列中产生的buffer read信息和索引页面相同key从左到右遍历叶子页面的buffer read信息。
  返回值类型：record
  
  | 参数类型   | 参数名         | 类型    | 描述                                                                                                                                                                                                                                                                                                                                                                   |
  |:---|:---|:---|:---|
  | 输入参数     | reset       | int8  | - 0：将统计信息reset为初始值0，重新开始统计。  - 1：直接show出当前的统计信息。                                                                                                                  |
  | 输入参数 | out_type    | text | - urq：输出循环队列的统计信息。  - ubtree：输出索引页的统计信息。  - all：循环队列和索引页的统计信息全部输出。   |
  | 输出参数    | relfilenode | oid   | 统计到的最大buffer read值对应的索引relfilenode。                                                                                                                                                                                                                                                                                                                                    |
  | 输出参数     | max_count    | int8  | 最大buffer read值。                                                                                                                                                                                                                                                                                                                                                      |
  | 输出参数    | ave_count   | int8 | 平均buffer read值。                                                                                                                                                                                                                                                                                                                                                       |
     
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - 该接口当前仅支持USTORE索引表。
  
  - 该接口执行时，先reset清理、将记录全部置为0。再进行查询，直到下次统计到信息值之前，查询记录会一直为0。查询示例如下：
    ```
    gaussdb=# SELECT * FROM gs_index_dump_read(0, 'all');
    relfilenode | max_count | ave_count
    --------------+-------------+-------------
    |                     |
    (1 row)
    gaussdb=# SELECT * FROM gs_index_dump_read(1, 'all');
    relfilenode | max_count | ave_count
    --------------+-------------+-------------
    0 |                  0 |                  0
    0 |                  0 |                  0
    (2 rows)
    ```
    
    
- pg_get_ilmdef(pidx integer) 描述：行存压缩系统函数，根据输入的ilm策略索引返回对应的策略信息
  返回值类型：text
  
  | 参数类型  | 参数名            | 类型       | 描述             |
  |:---|:---|:---|:---|
  | 输入参数 | pidx            | integer | ilm策略的序号。    |
  | 输出参数 | ilm_policy_info | text      | 指定ilm策略的策略信息。 |
     
  
- gs_shared_storage_flush_stat(int operation) 描述：统计共享盘的写入数据量、写入速度、写入时间、读取数据量、读取速度、读取时间等。
  返回值类型：record
  
  | 参数类型     | 参数名                    | 类型            | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  |:---|:---|:---|:---|
  | 输入参数   | operation                | int         | - -1：关闭统计开关。  - 0：打开统计开关（默认状态为打开）。  - 1：查询统计信息。  - 2：重置统计信息。   关闭统计开关后重新打开时会清理之前的统计信息。 |
  | 输出参数    | stat_switch              | bool        | 统计开关是否打开。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  | 输出参数   | write_times             | uint64      | shared_storage_xlog_copy线程调用dorado_write_xlog接口的次数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | 输出参数   | avg_write_bytes          | uint32     | 每次调用dorado_write_xlog接口请求写的Xlog量（单位：B）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  | 输出参数  | avg_actual_write_bytes    | uint32       | 实际每次调用dorado_write_xlog接口写的Xlog量（单位：B）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
  | 输出参数   | total_write_time         | uint64        | 调用dorado_write_xlog操作总时间统计（单位：us）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  | 输出参数    | avg_write_time           | uint32        | 每次调用dorado_write_xlog接口平均时间（单位：us）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
  | 输出参数   | avg_write_speed         | uint32        | 平均调用dorado_write_xlog接口请求写Xlog的速度（单位：KB/s）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
  | 输出参数 | avg_actual_write_speed | uint32        | 实际平均调用dorado_write_xlog接口请求写Xlog的速度（单位：KB/s）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | 输出参数  | total_write_sleep_time | uint64      | shared_storage_xlog_copy线程总睡眠时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | 输出参数    | read_times              | uint64       | walreceiver线程调用dorado_read_xlog接口的次数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | 输出参数    | avg_read_bytes            | uint32       | 每次调用dorado_read_xlog接口请求写的Xlog量（单位：B）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  | 输出参数   | avg_actual_read_bytes  | uint32        | 实际每次调用dorado_read_xlog接口写的Xlog量（单位：B）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
  | 输出参数   | total_read_time         | uint64      | 调用dorado_read_xlog操作总时间统计（单位：us）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
  | 输出参数   | avg_read_time            | uint32       | 每次调用dorado_read_xlog接口平均时间（单位：us）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  | 输出参数  | avg_read_speed          | uint32        | 平均调用dorado_read_xlog接口请求写Xlog的速度（单位：KB/s）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | 输出参数   | avg_actual_read_speed   | uint32        | 实际平均调用dorado_read_xlog接口请求写Xlog的速度（单位：KB/s）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
  | 输出参数     | total_read_sleep_time  | uint64      | walreceiver线程总睡眠时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
  | 输出参数   | stat_start_time         | timestamptz | 本次统计数据开始时间，若无重置统计信息操作则为GaussDB程序开始运行时间，若有重置统计信息操作则为上次重置时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
  | 输出参数   | stat_end_time          | timestamptz   | 本次统计数据结束时间，若统计开关开启则为当前时间，若统计开关关闭则为上次关闭时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
     
  示例：
  ```
  gaussdb=# SELECT * FROM gs_shared_storage_flush_stat(1);
   stat_switch | write_times | avg_write_bytes | avg_actual_write_bytes | total_write_time | avg_write_time | avg_write_speed | avg_actual_write_speed | total_write_sleep_time | read_times | avg
  _read_bytes | avg_actual_read_bytes | total_read_time | avg_read_time | avg_read_speed | avg_actual_read_speed | total_read_sleep_time |        stat_start_time        |         stat_end_time
  -------------+-------------+-----------------+------------------------+------------------+----------------+-----------------+------------------------+------------------------+------------+----
  ------------+-----------------------+-----------------+---------------+----------------+-----------------------+-----------------------+-------------------------------+------------------------
  -------
   t           |       43644 | 8624            | 8624                   |        263922553 | 6047           | 1392            | 1392                   |            26918503404 |       7451 | 140
  13          | 14013                 |         5321082 | 714           | 19163          | 19163                 |                     0 | 2023-12-18 07:18:39.766855+08 | 2023-12-18 16:29:22.757
  535+08
  (1 row)
  ```
  
- gs_stat_freespace(Oid relid, Oid partid, char type, int sample_ratio)
  描述：通过统计信息或采样的方法估算表/分区表/索引的膨胀率，输出空间使用统计信息及膨胀率信息。
  返回值类型：record
  
  | 参数类型  | 参数              | 类型      | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
  |:---|:---|:---|:---|
  | 输入参数 | relation_oid   | OID    | 要查询的数据表/分区表主表/索引的OID。                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  | 输入参数  | partition_oid   | OID    | 分区表/二级分区表/LOCAL分区索引的OID。 - 如果relation_oid为非分区表/非LOCAL分区索引/GPI，本入参无意义。  - 如果relation_oid为分区表/二级分区表/LOCAL分区索引，partition_oid取值为0，代表输出所有分区的信息。                                                                                                                        |
  | 输入参数  | relation_type | CHAR  | 表类型： - 'r'：表示查询目标表为行存数据表。  - 'i'：表示查询目标表为行存索引表。                                                                                                                                                                                                                       |
  | 输入参数   | sample_ratio   | INT8   | 采样比例，取值范围为0\~100。 - 当sample_ratio取值为0时，INFO为通过统计信息估算出的膨胀率。  - 当sample_ratio取值为1-100时，INFO为通过采样估算出的膨胀率。                                                                                                                                                             |
  | 输入参数  | read_memory   | BOOL | 是否从内存读取页面： - true：表示为从内存读取页面；  - false：表示为从磁盘读取页面。暂时只支持取值为 false。                                                                                                                                                                                               |
  | 输出参数  | OID          | OID    | 要查询的数据表/分区表/二级分区表/索引的OID。                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  | 输出参数   | INFO           | TEXT   | - 当sample_ratio=0时，INFO为估算页面膨胀率。  - 当sample_ratio\>0时，INFO为页面使用率采样统计信息，包括页头长度、元组平均长度、平均normal元组数量、平均dead元组数量、平均unused元组数量、平均redirected元组数量、页面平均td数（Ustore数据表）、页面平均potential_freespace、实际freespace（页面upper - lower）、relation总页面数、通过采样信息估算数据表/索引占空间大小、通过采样信息估算数据表/索引膨胀率。   |
     
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - 该接口当前仅支持行存表，不支持时序表、段页式表、hashbucket表、本地临时表和全局临时表。对于不支持表类型上的索引同样不支持空间统计信息估算。
  
  - CN节点查询该接口，查询结果仅代表本节点相关统计信息与膨胀率估算情况，不包含对应DN的相关信息。如需查询DN节点统计信息与膨胀率估算结果，需要连接DN节点进行查询。
  
  - 备机上使用此接口时，当sample_ratio取值为0时，即根据统计信息估算，无法保证实时准确率。
   
  示例：
  ```
  -- 查询普通表信息
  -- 建表语句：
  gaussdb=# DROP TABLE IF EXISTS t;
  NOTICE:  table "t" does not exist, skipping
  DROP TABLE
  gaussdb=# CREATE TABLE t(a int) WITH (storage_type=ustore);
  CREATE TABLE
  gaussdb=# INSERT INTO t VALUES(generate_series(1, 110000));
  INSERT 0 110000
  -- 更新统计信息：
  gaussdb=# VACUUM ANALYZE t;
  VACUUM
  -- 估算膨胀率：
  gaussdb=# SELECT * FROM gs_stat_freespace((SELECT oid FROM pg_class WHERE relname='t'), 0, 'r', 0, false);
    oid  |                                                                                                       info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  --------------------------------------------------------------------
   16735 | live_tuples: 110000, dead_tuples: 0, avg_tuple_len: 4, tuple_header_size: 11, rowptr_size: 440000, page_header_size: 56,  nblocks: 419, approximate_table_size: 2113464 (Bytes), approximate expansion rate: 1.62
  (1 row)
  -- 采样信息：
  gaussdb=# SELECT * FROM gs_stat_freespace((SELECT oid FROM pg_class WHERE relname='t'), 0, 'r', 80, false);
    oid  |
                        info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------------------------------------------------------------------------------------------------------------------
  -----------------------------------------
   16732 | Average page stat info: page_header_size: 28, tuple has storage: 222.22, normal tuple: 222.22, dead tuple: 0.00, unused tuple: 0.00, redirected tuple: 0.00, td_count: 0.00, potential_freespace: 0.00, actual_freespace: 152.00. Freespace stat info: nblocks: 45, approximate_table_size: 342495 (Bytes), approximate expansion rate: 1.08.
  (1 row)
  -- 查询分区表单个分区信息
  -- 建表语句：
  gaussdb=# DROP TABLE IF EXISTS t;
  DROP TABLE
  gaussdb=# CREATE TABLE t(a int) WITH (storage_type=ustore) PARTITION BY range(a) (PARTITION p1 VALUES LESS THAN(3000), PARTITION p2 VALUES LESS THAN(maxvalue));
  CREATE TABLE
  gaussdb=# INSERT INTO t VALUES(generate_series(1, 10000));
  INSERT 0 10000
  -- 更新统计信息：
  gaussdb=# VACUUM ANALYZE t;
  VACUUM
  -- 查询 oid：
  gaussdb=# SELECT oid FROM pg_class WHERE relname='t';
    oid
  -------
   16802
  (1 row)
  gaussdb=# SELECT oid, relname, parttype FROM pg_partition;
    oid  | relname | parttype
  -------+---------+----------
   16805 | t       | r
   16806 | p1      | p
   16807 | p2      | p
  (3 rows)
  -- 估算膨胀率：
  gaussdb=# SELECT * FROM gs_stat_freespace(16802, 16806, 'r', 0, false);
    oid  |                                                                                                     info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  ---------------------------------------------------------------
   16806 | live_tuples: 5998, dead_tuples: 0, avg_tuple_len: 4, tuple_header_size: 11, rowptr_size: 23992, page_header_size: 56,  nblocks: 12, approximate_table_size: 114634 (Bytes), approximate expansion rate: 0.86
  (1 row)
  -- 采样信息：
  gaussdb=# SELECT * FROM gs_stat_freespace(16802, 16807, 'r', 0, false);
    oid  |                                                                                                     info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  ----------------------------------------------------------------
   16807 | live_tuples: 14002, dead_tuples: 0, avg_tuple_len: 4, tuple_header_size: 11, rowptr_size: 56008, page_header_size: 56,  nblocks: 27, approximate_table_size: 267550 (Bytes), approximate expansion rate: 0.83
  (1 row)
  -- 查询分区表所有分区信息
  -- 建表语句：
  gaussdb=# DROP TABLE IF EXISTS t;
  DROP TABLE
  gaussdb=# CREATE TABLE t(a int) WITH (storage_type=ustore) PARTITION BY range(a) (PARTITION p1 VALUES LESS THAN(3000), PARTITION p2 VALUES LESS THAN(maxvalue));
  CREATE TABLE
  gaussdb=# INSERT INTO t VALUES(generate_series(1, 10000));
  INSERT 0 10000
  -- 更新统计信息：
  gaussdb=# VACUUM ANALYZE t;
  -- 查询 oid：
  gaussdb=# SELECT oid FROM pg_class WHERE relname='t';
  gaussdb=# 
    oid
  -------
   16802
  (1 row)
  gaussdb=# SELECT oid, relname, parttype FROM pg_partition;
    oid  | relname | parttype
  -------+---------+----------
   16805 | t       | r
   16806 | p1      | p
   16807 | p2      | p
  (3 rows)
  -- 估算膨胀率：
  gaussdb=# SELECT * FROM gs_stat_freespace(16802, 0, 'r', 0, false);
    oid  |                                                                                                     info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  ----------------------------------------------------------------
   16806 | live_tuples: 5998, dead_tuples: 0, avg_tuple_len: 4, tuple_header_size: 11, rowptr_size: 23992, page_header_size: 56,  nblocks: 12, approximate_table_size: 114634 (Bytes), approximate expansion rate: 0.86
   16807 | live_tuples: 14002, dead_tuples: 0, avg_tuple_len: 4, tuple_header_size: 11, rowptr_size: 56008, page_header_size: 56,  nblocks: 27, approximate_table_size: 267550 (Bytes), approximate expansion rate: 0.83
  (2 rows)
  -- 采样信息：
  gaussdb=# SELECT * FROM gs_stat_freespace(16802, 0, 'r', 60, false);
    oid  |
                          info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------------------------------------------------------------------------------------------------------------------
  --------------------------------------------
   16806 | Average page stat info: page_header_size: 56, tuple has storage: 249.92, normal tuple: 249.92, dead tuple: 0.00, unused tuple: 0.00, redirected tuple: 0.00, td_count: 4.00, potential_freespace: 1034.33, actual_freespace: 1034.33. Freespace stat info: nblocks: 12, approximate_table_size: 84636 (Bytes), approximate expansion rate: 1.16.
   16807 | Average page stat info: page_header_size: 56, tuple has storage: 259.30, normal tuple: 259.30, dead tuple: 0.00, unused tuple: 0.00, redirected tuple: 0.00, td_count: 4.00, potential_freespace: 771.70, actual_freespace: 771.70. Freespace stat info: nblocks: 27, approximate_table_size: 197532(Bytes), approximate expansion rate: 1.12.
  (2 rows)
  -- 查询普通索引信息
  -- 建表语句：
  gaussdb=# DROP TABLE IF EXISTS t;
  DROP TABLE
  gaussdb=# CREATE TABLE t(a int, b int, c varchar(1000)) WITH (storage_type=ustore);
  CREATE TABLE
  gaussdb=# CREATE INDEX ON t(a);
  CREATE INDEX
  gaussdb=# INSERT INTO t VALUES(generate_series(1, 100000), generate_series(1, 100000), 'kjgkjature');
  INSERT 0 100000
  -- 更新统计信息：
  gaussdb=# VACUUM ANALYZE t;
  VACUUM
  -- 估算膨胀率：
  gaussdb=# SELECT * FROM gs_stat_freespace((SELECT oid FROM pg_class WHERE relname='t_a_idx'), 0, 'i', 0, false);
    oid  |                                                                                                                        info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  -----------------------------------------------------------------------------------------------------
   16776 | live_tuples: 100000, dead_tuples: 0, origin_avg_tuple_len 4, max_align_avg_tuple_len: 8, tuple_header_size: 16, rowptr_size: 401548, page_header_size: 24, nblocks: 387, approximate_table_size: 2838700 (Bytes), approximate expansion rate: 1.12
  (1 row)
  -- 采样信息：
  gaussdb=# SELECT * FROM gs_stat_freespace((SELECT oid FROM pg_class WHERE relname='t_a_idx'), 0, 'i', 60, false);
    oid  |
                         info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------
   16776 | Average page stat info: page_header_size: 24, tuple has storage: 260.39, normal tuple: 260.39, dead tuple: 0.00, unused tuple: 0.02, redirected tuple: 0.00, td_count: 0.00, potential_freespace: 0.00, actual_freespace: 845.05. Freespace stat info: nblocks: 387, approximate_table_size: 3044529(Bytes), approximate expansion rate: 1.04.
  (1 row)
  -- 查询 local 分区索引单个分区信息
  -- 建表语句：
  gaussdb=# DROP TABLE IF EXISTS t;
  DROP TABLE
  gaussdb=# CREATE TABLE t(a int) WITH (storage_type=ustore) PARTITION BY range(a) (PARTITION p1 VALUES LESS THAN(3000), PARTITION p2 VALUES LESS THAN(maxvalue));
  CREATE TABLE
  gaussdb=# CREATE INDEX ON t(a) LOCAL;
  CREATE INDEX
  gaussdb=# INSERT INTO t VALUES(generate_series(1, 10000));
  INSERT 0 10000
  -- 更新统计信息：
  gaussdb=# VACUUM ANALYZE t;
  VACUUM
  -- 查询 oid：
  gaussdb=# SELECT oid FROM pg_class WHERE relname='t_a_idx';
    oid
  -------
   16814
  (1 row)
  gaussdb=# SELECT oid, relname, parttype FROM pg_partition;
    oid  | relname  | parttype
  -------+----------+----------
   16811 | t        | r
   16812 | p1       | p
   16813 | p2       | p
   16815 | p1_a_idx | x
   16816 | p2_a_idx | x
  (5 rows)
  -- 估算膨胀率：
  gaussdb=# SELECT * FROM gs_stat_freespace(16814, 16815, 'i', 0, false);
    oid  |                                                                                                                      info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------------------------------------------------------------
   16815 | live_tuples: 10000, dead_tuples: 0, origin_avg_tuple_len 4, max_align_avg_tuple_len: 8, tuple_header_size: 16, rowptr_size: 40056, page_header_size: 24, nblocks: 14, approximate_table_size: 281400 (Bytes), approximate expansion rate: 0.41
  (1 row)
  -- 采样信息：
  gaussdb=# SELECT * FROM gs_stat_freespace(16814, 16815, 'i', 80, false);
    oid  |
                        info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------------------------------------------------------------------------------------------------------------------
  -----------------------------------------
   16815 | Average page stat info: page_header_size: 24, tuple has storage: 215.93, normal tuple: 215.93, dead tuple: 0.00, unused tuple: 0.50, redirected tuple: 0.00, td_count: 0.00, potential_freespace: 0.00, actual_freespace: 2087.43. Freespace stat info: nblocks: 14, approximate_table_size: 91476 (Bytes), approximate expansion rate: 1.25.
  (1 row)
  -- 查询 local 分区索引所有分区信息
  -- 建表语句：
  gaussdb=# DROP TABLE IF EXISTS t;
  DROP TABLE
  gaussdb=# CREATE TABLE t(a int) WITH (storage_type=ustore) PARTITION BY range(a) (PARTITION p1 VALUES LESS THAN(3000), PARTITION p2 VALUES LESS THAN(maxvalue));
  CREATE TABLE
  gaussdb=# CREATE INDEX ON t(a) LOCAL;
  CREATE INDEX
  gaussdb=# INSERT INTO t VALUES(generate_series(1, 10000));
  INSERT 0 10000
  更新统计信息：
  gaussdb=# VACUUM ANALYZE t;
  VACUUM
  -- 查询 oid：
  gaussdb=# SELECT oid FROM pg_class WHERE relname='t_a_idx';
    oid
  -------
   16814
  (1 row)
  -- 估算膨胀率：
  gaussdb=# SELECT * FROM gs_stat_freespace(16814, 0,  'i', 0, false);
    oid  |                                                                                                                      info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------------------------------------------------------------
   16815 | live_tuples: 10000, dead_tuples: 0, origin_avg_tuple_len 4, max_align_avg_tuple_len: 8, tuple_header_size: 16, rowptr_size: 40056, page_header
  _size: 24, nblocks: 14, approximate_table_size: 281400 (Bytes), approximate expansion rate: 0.41
   16816 | live_tuples: 10000, dead_tuples: 0, origin_avg_tuple_len 4, max_align_avg_tuple_len: 8, tuple_header_size: 16, rowptr_size: 40116, page_header
  _size: 24, nblocks: 29, approximate_table_size: 282900 (Bytes), approximate expansion rate: 0.84
  (2 rows)
  -- 采样信息：
  gaussdb=# SELECT * FROM gs_stat_freespace(16814, 0,  'i', 80, false);
    oid  |
                         info
  -------+-----------------------------------------------------------------------------------------------------------------------------------------------
  -------------------------------------------------------------------------------------------------------------------------------------------------------
  ------------------------------------------
   16815 | Average page stat info: page_header_size: 24, tuple has storage: 215.93, normal tuple: 215.93, dead tuple: 0.00, unused tuple: 0.50, redirected tuple: 0.00, td_count: 0.00, potential_freespace: 0.00, actual_freespace: 2087.43. Freespace stat info: nblocks: 14, approximate_table_size: 91476 (Bytes), approximate expansion rate: 1.25.
   16816 | Average page stat info: page_header_size: 24, tuple has storage: 243.28, normal tuple: 243.28, dead tuple: 0.00, unused tuple: 0.24, redirected tuple: 0.00, td_count: 0.00, potential_freespace: 0.00, actual_freespace: 1323.03. Freespace stat info: nblocks: 29, approximate_table_size: 213237 (Bytes), approximate expansion rate: 1.11.
  (2 rows)
  -- 异常输入：
  gaussdb=# SELECT * FROM gs_stat_freespace(16814, 0, 'k', 0, false);
  ERROR:  Wrong relation_type input, type should be either 'r' or 'i'
  gaussdb=# SELECT * FROM gs_stat_freespace(16814, 0, 'i', 600, false);
  ERROR:  Wrong sample_ratio input, sample_ratio should be an integer between 0 and 100
  gaussdb=# SELECT * FROM gs_stat_freespace(16814, 0, 'r', 60, false);
  ERROR:  "t_a_idx" is not a ordinary relation or toast relation.
  ```
  
- gin_clean_pending_list(index regclass) 描述：清理指定GIN/UGIN索引的"pending list"，将里面的条目批量移动到主索引页面中，返回清理的页面数量。如果pending list过长，可能需要多次执行该函数进行清理，一直清理到返回结果为零。如果索引未开启fastupdate选项，则不会发生清理，结果为0。
  返回值类型：bigint
  
- gs_walrcv_writer_stat(int operation) 描述：用于统计备机接收WAL日志write与sync的次数频率与数据量，以及Xlog文件的信息。
  返回值类型：record
  
  | 参数类型  | 参数名                   | 类型        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  |:---|:---|:---|:---|
  | 输入参数 | operation          | int         | - -1：表示关闭统计开关（默认状态为关闭）。  - 0：表示打开统计开关。  - 1：表示查询统计信息。  - 2：表示重置统计信息。   关闭统计开关后重新打开时，会清理之前的统计信息。 |
  | 输出参数 | enable_stat          | bool       | 统计开关是否打开。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
  | 输出参数 | total_write_bytes    | uint64     | 备机写入wal文件总量统计值（单位：B）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
  | 输出参数  | write_count          | uint64   | 备机写入wal文件的次数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
  | 输出参数  | total_write_time    | uint64     | 备机写入wal文件操作总时间统计（单位：us）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | 输出参数  | avg_write_time        | uint64    | 备机写入wal文件每次调用write接口平均时间（单位：us）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
  | 输出参数  | max_write_time      | uint64    | 备机写入wal文件调用write接口最大用时（单位：us）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  | 输出参数 | avg_write_bytes      | uint64    | 备机平均每次写入wal文件的数值（单位：B）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | 输出参数 | total_sync_time    | uint64     | 备机wal文件落盘操作总时间统计（单位：us）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
  | 输出参数  | avg_sync_time          | uint64   | 备机wal文件落盘每次调用sync接口平均时间（单位：us）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
  | 输出参数   | max_sync_time         | uint64      | 备机写入wal文件调用sync接口最大用时（单位：us）。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
  | 输出参数 | current_xlog_segno | uint64    | 备机当前正在写的Xlog段文件编号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
  | 输出参数 | newest_xlog_segno   | uint64     | 备机最新创建的Xlog段文件编号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
  | 输出参数  | stat_start_time       | timestamptz | 本次统计数据开始时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
  | 输出参数   | stat_end_time        | timestamptz | 本次统计数据结束时间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
     
  示例：
  ```
  gaussdb=# SELECT * FROM gs_walrcv_writer_stat(1);
  -[ RECORD 1 ]------+------------------------------
  enable_stat        | t
  total_write_bytes  | 100754464
  write_count        | 88426
  total_write_time   | 3811972
  avg_write_time     | 43
  max_write_time     | 381739
  avg_write_bytes    | 1139
  total_sync_time    | 22280240
  avg_sync_time      | 251
  max_sync_time      | 655533
  current_xlog_segno | 8154
  newest_xlog_segno  | 8274
  stat_start_time    | 2024-12-05 09:29:15.324159+08
  stat_end_time      | 2024-12-05 09:29:45.92897+08
  ```
  
  
- gstrace_reg_sql(scope text, unique_sql_id text) 描述：添加跟踪的SQL语句，1个数据库实例最多支持1000个SQL语句的跟踪。执行成功后返回添加跟踪的SQL语句的结果是成功或失败。调用该函数必须有MONADMIN权限或者SYSADMIN权限。
  参数：
  
  | 入参          | 说明                           | 取值范围                                                                  |
  |:---|:---|:---|
  | scope        | 必选。功能的范围。                       | text类型。取值范围为'LOCAL、'GLOBAL'。'LOCAL'表示仅在当前节点生效，'GLOBAL'表示在所有CN/DN节点上生效。 |
  | unique_sql_id | 必选。指定添加跟踪的SQL语句的unique sql id。 | text类型。通过statement_history表查询到的unique_query_id。                      |
     
  返回值类型：text
  示例：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_reg_sql('LOCAL', '3545025713');
  -[ RECORD 1 ]------+------------------------------
   (datanode,"ACTION:      [GSTRACE]->[TRACE_SQL]          +
   RESULT:                                                 +
   SUCCESSFUL - etrace unique_sql_id (3545025713) tracked")
  ```
  
  
- gstrace_reg_func(scope text, function_name text, so_index text, so_offset text, level text) 描述：添加跟踪的函数，1个数据库实例最多支持1000个函数的跟踪。执行成功后返回添加跟踪的函数的结果是成功或失败。调用该函数必须有MONADMIN权限或者SYSADMIN权限。
  参数：
  
  | 入参             | 说明                             | 取值范围                                                                   |
  |:---|:---|:---|
  | scope        | 必选。功能的范围。                       | text类型。取值范围为'LOCAL、'GLOBAL'。'LOCAL'表示仅在当前节点生效，'GLOBAL'表示在所有CN/DN节点上生效。 |
  | function_name | 必选。指定添加跟踪的函数的名称。               | text类型。仅支持系统函数的名称。                                                    |
  | so_index     | 可选。函数所在So的序列号。                   | text类型。通过pg_catalog.gstrace_show_mangled_func()函数查询到的系统函数的so_index。    |
  | so_offset     | 填入so_index时必选，否则不选。函数在So的偏移量。 | text类型。通过pg_catalog.gstrace_show_mangled_func()函数查询到的系统函数的so_offset。    |
  | level         | 必选。函数下钻等级。                       | text类型。取值范围为'0'、'1'。'0'表示只跟踪函数本身，'1'表示跟踪函数和其子函数。                       |
     
  返回值类型：text
  示例1，入参不含So序列号和So偏移量：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_reg_func('LOCAL', 'pg_sleep', '0');
  ----------------------------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[TRACE_FUNC]                            +
   RESULT:                                                                    +
   SUCCESSFUL - etrace function (_Z8pg_sleepP20FunctionCallInfoData) tracked")
  ```
  
  示例2，入参包含So序列号和So偏移量：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_show_mangled_func('LOCAL', 'pg_sleep');
                           gstrace_show_mangled_func
  ----------------------------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[SHOW_MANGLED_FUNC]                    +
   RESULT:                                                                   +
   SUCCESSFUL - function (pg_sleep)'s gangled func are these:                +
   function_name                            so_index so_name        so_offset+
   _Z8pg_sleepP20FunctionCallInfoData       0        gaussdb        59877694 +
   ")
  gaussdb=# SELECT pg_catalog.gstrace_reg_func('LOCAL', 'pg_sleep', '0', '59877694', '0');
                                gstrace_reg_func
  -----------------------------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[TRACE_FUNC]                            +
   RESULT:                                                                    +
   SUCCESSFUL - etrace function (_Z8pg_sleepP20FunctionCallInfoData) tracked")
  ```
  
  
- gstrace_unreg_sql(scope text, unique_sql_id text) 描述：删除跟踪的SQL语句。执行成功后返回删除跟踪的SQL语句的结果是成功或失败。调用该函数必须有MONADMIN权限或者SYSADMIN权限。
  参数：
  
  | 入参            | 说明                            | 取值范围                                                                   |
  |:---|:---|:---|
  | scope         | 必选。功能的范围。                     | text类型。取值范围为'LOCAL、'GLOBAL'。'LOCAL'表示仅在当前节点生效，'GLOBAL'表示在所有CN/DN节点上生效。 |
  | unique_sql_id | 必选。指定删除跟踪的SQL语句的unique sql id。 | text类型。通过statement_history表查询到的unique_query_id。                        |
     
  返回值类型：text
  示例：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_unreg_sql('LOCAL', '3545025713');
                          gstrace_unreg_sql
  -----------------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[UNTRACE_SQL]               +
   RESULT:                                                        +
   SUCCESSFUL - etrace unique_sql_id (3545025713) delete tracked")
  ```
  
  
- gstrace_unreg_func(scope text, function_name text, so_index text, so_offset text) 描述：删除跟踪的函数。执行成功后返回删除跟踪的函数的结果是成功或失败。调用该函数必须有MONADMIN权限或者SYSADMIN权限。
  参数：
  
  | 入参           | 说明                           | 取值范围                                                                   |
  |:---|:---|:---|
  | scope        | 必选。功能的范围。                    | text类型。取值范围为'LOCAL、'GLOBAL'。'LOCAL'表示仅在当前节点生效，'GLOBAL'表示在所有CN/DN节点上生效。 |
  | function_name | 必选。指定删除跟踪的函数的名称。             | text类型。仅支持系统函数的名称。                                                    |
  | so_index     | 可选。函数所在So的序列号。              | text类型。通过pg_catalog.gstrace_show_mangled_func()函数查询到的系统函数的so_index。  |
  | so_offset       | 填入so_index时必选，否则不选。函数在So的偏移量。 | text类型。通过pg_catalog.gstrace_show_mangled_func()函数查询到的系统函数的so_offset。   |
     
  返回值类型：text
  示例1，入参不含So序列号和So偏移量：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_unreg_func('LOCAL', 'pg_sleep');
                                gstrace_unreg_func
  -------------------------------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[UNTRACE_FUNC]                            +
   RESULT:                                                                      +
   SUCCESSFUL - etrace function (_Z8pg_sleepP20FunctionCallInfoData) untracked")
  ```
  
  示例2，入参包含So序列号和So偏移量：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_show_mangled_func('LOCAL', 'pg_sleep');
                           gstrace_show_mangled_func
  ----------------------------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[SHOW_MANGLED_FUNC]                    +
   RESULT:                                                                   +
   SUCCESSFUL - function (pg_sleep)'s gangled func are these:                +
   function_name                            so_index so_name        so_offset+
   _Z8pg_sleepP20FunctionCallInfoData       0        gaussdb        59877694 +
   ")
  gaussdb=# SELECT pg_catalog.gstrace_unreg_func('LOCAL', 'pg_sleep', '0', '59877694');
                                gstrace_unreg_func
  -------------------------------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[UNTRACE_FUNC]                            +
   RESULT:                                                                      +
   SUCCESSFUL - etrace function (_Z8pg_sleepP20FunctionCallInfoData) untracked")
  ```
  
  
- gstrace_unreg_all_sql(scope text) 描述：删除全部跟踪的SQL语句。执行成功后返回删除跟踪的SQL语句的结果是成功或失败。调用该函数必须有MONADMIN权限或者SYSADMIN权限。
  参数：
  
  | 入参     | 说明        | 取值范围                                                                  |
  |:---|:---|:---|
  | scope | 必选。功能的范围。 | text类型。取值范围为'LOCAL、'GLOBAL'。'LOCAL'表示仅在当前节点生效，'GLOBAL'表示在所有CN/DN节点上生效。 |
     
  返回值类型：text
  示例：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_unreg_all_sql('LOCAL');
                  gstrace_unreg_all_sql
  ------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[UNTRACE_ALL_SQL]+
   RESULT:                                             +
   SUCCESSFUL - all traced SQL have been deleted!")
  ```
  
  
- gstrace_unreg_all_func(scope text) 描述：删除全部跟踪的函数。执行成功后返回删除跟踪的函数的结果是成功或失败。调用该函数必须有MONADMIN权限或者SYSADMIN权限。
  参数：
  
  | 入参    | 说明         | 取值范围                                                                |
  |:---|:---|:---|
  | scope | 必选。功能的范围。 | text类型。取值范围为'LOCAL、'GLOBAL'。'LOCAL'表示仅在当前节点生效，'GLOBAL'表示在所有CN/DN节点上生效。 |
     
  返回值类型：text
  示例：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_unreg_all_func('LOCAL');
                  gstrace_unreg_all_func
  -------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[UNTRACE_ALL_FUNC]+
   RESULT:                                              +
   SUCCESSFUL - all tracked functions have been deleted!+
   ")
  ```
  
  
- gstrace_list_configured_sql(scope text) 描述：查看正在跟踪的SQL语句。调用该函数必须有MONADMIN权限或者SYSADMIN权限。
  参数：
  
  | 入参 | 说明       | 取值范围                                                                   |
  |:---|:---|:---|
  | scope | 必选。功能的范围。 | text类型。取值范围为'LOCAL、'GLOBAL'。'LOCAL'表示仅在当前节点生效，'GLOBAL'表示在所有CN/DN节点上生效。 |
     
  返回值类型：setof record
  返回字段说明：
  
  | 字段名称         | 字段类型      | 字段说明                 |
  |:---|:---|:---|
  | unique_sql_id | bigint | 跟踪SQL语句的unique sql id。 |
     
  示例：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_list_configured_sql('LOCAL');
               gstrace_list_configured_sql
  -----------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[LIST_TRACE_SQL]+
   RESULT:                                            +
   SUCCESSFUL - these unique_sql_id are tracking:     +
   unique_sql_id                                      +
   3545025713                                         +
   ")
  ```
  
  
- gstrace_list_configured_func(scope text) 描述：查看正在跟踪的函数。调用该函数必须有MONADMIN权限或者SYSADMIN权限。
  参数：
  
  | 入参    | 说明        | 取值范围                                                                     |
  |:---|:---|:---|
  | scope | 必选。功能的范围。 | text类型。取值范围为'LOCAL、'GLOBAL'。'LOCAL'表示仅在当前节点生效，'GLOBAL'表示在所有CN/DN节点上生效。 |
     
  返回值类型：setof record
  返回字段说明：
  
  | 字段名称         | 字段类型   | 字段说明                                         |
  |:---|:---|:---|
  | function_name | text | 正在跟踪的函数名称。                                  |
  | so_index   | int    | 函数所在So的序列号，0：gaussdb bin，1：libgtmclient.so。 |
  | so_name     | text    | So的名称。                                      |
  | so_offset    | int     | 函数在So的偏移量。                                 |
  | level       | int  | 函数下钻等级。0表示只跟踪函数本身，1表示跟踪函数和其子函数。               |
     
  示例：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_list_configured_func('LOCAL');
                                gstrace_list_configured_func
  ----------------------------------------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[LIST_TRACE_FUNC]                                  +
   RESULT:                                                                               +
   SUCCESSFUL - these function are tracking:                                             +
   function_name                            so_index so_name        so_offset       level+
   _Z8pg_sleepP20FunctionCallInfoData       0        gaussdb        59877694        0    +
   ")
  ```
  
  
- gstrace_show_traced_func(scope text) 描述：查看正在跟踪的函数的状态。调用该函数必须有MONADMIN权限或者SYSADMIN权限。
  参数：
  
  | 入参     | 说明        | 取值范围                                                                    |
  |:---|:---|:---|
  | scope | 必选。功能的范围。 | text类型。取值范围为'LOCAL、'GLOBAL'。'LOCAL'表示仅在当前节点生效，'GLOBAL'表示在所有CN/DN节点上生效。 |
     
  返回值类型：setof record
  返回字段说明：
  
  | 字段名称            | 字段类型 | 字段说明                                     |
  |:---|:---|:---|
  | function_name  | text   | 正在跟踪的函数名称。                               |
  | so_index       | int     | 函数所在So的序列号，0：gaussdb bin，1：libgtmclient.so。 |
  | so_name        | text   | So的名称。                                     |
  | so_offset     | int    | 函数在So的偏移量。                                 |
  | level          | int   | 函数下钻等级。0表示只跟踪函数本身，1表示跟踪函数和其子函数。            |
  | module         | text | 申请跟踪此函数的模块。                               |
  | if_traced     | bool    | 函数汇编是否有跳转跟踪的指令。                          |
  | if_hp_conflict | bool   | 是否因为和热补丁冲突而自动取消跟踪。                      |
  | if_blacklist  | bool     | 函数是否在跟踪函数黑名单中。                             |
  | ref_count      | int    | 函数被跟踪的引用次数。                              |
     
  示例：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_show_traced_func('LOCAL');
                                                                    gstrace_show_traced_func
  ------------------------------------------------------------------------------------------------------------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[SHOW_TRACED_FUNC]                                                                                                     +
   RESULT:                                                                                                                                                   +
   SUCCESSFUL - tracked function info are these:                                                                                                             +
   function_name                            so_index so_name        so_offset       level   module  if_traced       if_hp_conflict  if_blacklist    ref_count+
   _Z8pg_sleepP20FunctionCallInfoData       0        gaussdb        59877694        0       1       true            false           false           1        +
   ")
  ```
  
  
- gstrace_show_mangled_func(scope text, function_name text) 描述：查看指定函数mangle后的名称。调用该函数必须有MONADMIN权限或者SYSADMIN权限。
  参数：
  
  | 入参            | 说明              | 取值范围                                                                    |
  |:---|:---|:---|
  | scope         | 必选。功能的范围。         | text类型。取值范围为'LOCAL、'GLOBAL'。'LOCAL'表示仅在当前节点生效，'GLOBAL'表示在所有CN/DN节点上生效。 |
  | function_name | 必选。指定添加跟踪的函数的名称。 | text类型。仅支持系统函数的名称。                                                      |
     
  返回值类型：setof record
  返回字段说明：
  
  | 字段名称          | 字段类型 | 字段说明                                         |
  |:---|:---|:---|
  | function_name | text | 正在跟踪的函数名称。                                   |
  | so_index       | int  | 函数所在So的序列号，0：gaussdb bin，1：libgtmclient.so。 |
  | so_name        | text  | So的名称。                                      |
  | so_offset    | int  | 函数在So的偏移量。                                    |
     
  示例：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_show_mangled_func('LOCAL', '_Z8pg_sleepP20FunctionCallInfoData');
                                gstrace_show_mangled_func
  --------------------------------------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[SHOW_MANGLED_FUNC]                              +
   RESULT:                                                                             +
   SUCCESSFUL - function (_Z8pg_sleepP20FunctionCallInfoData)'s gangled func are these:+
   function_name                            so_index so_name        so_offset          +
   _Z8pg_sleepP20FunctionCallInfoData       0        gaussdb        59877694           +
   ")
  ```
  
  
- gstrace_show_subfunc(scope text, function_name text, so_index text, so_offset text) 描述：查看指定函数的全部子函数，调用该函数必须有MONADMIN权限或者SYSADMIN权限。
  参数：
  
  | 入参             | 说明                               | 取值范围                                                                      |
  |:---|:---|:---|
  | scope         | 必选。功能的范围。                        | text类型。分布式执行'LOCAL'或'GLOBAL'。'LOCAL'表示仅在当前节点生效，'GLOBAL'表示在所有CN/DN节点上生效。 |
  | function_name | 必选。指定添加跟踪的函数的名称。              | text类型。仅支持系统函数的名称。                                                      |
  | so_index       | 可选。函数所在So的序列号。                | text类型。通过pg_catalog.gstrace_show_mangled_func()函数查询到的系统函数的so_index。       |
  | so_offset      | 填入so_index时必选，否则不选。函数在So的偏移量。 | text类型。通过pg_catalog.gstrace_show_mangled_func()函数查询到的系统函数的so_offset。     |
     
  返回值类型：setof record
  返回字段说明：
  
  | 字段名称         | 字段类型  | 字段说明                                       |
  |:---|:---|:---|
  | function_name | text | 正在跟踪的函数名称。                                  |
  | so_index     | int  | 函数所在So的序列号，0：gaussdb bin，1：libgtmclient.so。 |
  | so_name       | text | So的名称。                                    |
  | so_offset    | int    | 函数在So的偏移量。                                 |
     
  示例：
  ```
  gaussdb=# SELECT pg_catalog.gstrace_show_subfunc('LOCAL', '_Z8pg_sleepP20FunctionCallInfoData');
                                          gstrace_show_subfunc
  ----------------------------------------------------------------------------------------------------
   (datanode,"ACTION:      [GSTRACE]->[SHOW_SUBFUNC]                                                 +
   RESULT:                                                                                           +
   SUCCESSFUL - function (_Z8pg_sleepP20FunctionCallInfoData)'s sub func are these:                  +
   function_name                                                    so_index so_name        so_offset+
   _Z14DatumGetFloat8m                                              0        gaussdb        68889422 +
   _Z21get_current_timestampv                                       0        gaussdb        63347226 +
   _ZL32optutil_gsstat_report_waitstatus23OptUtilExplainWaitStateb  0        gaussdb        59848101 +
   _Z17ProcessInterruptsv                                           0        gaussdb        94358107 +
   _Z9pg_usleepl                                                    0        gaussdb        55249960 +
   ")
  ```
  
  

- gs_last_demote_spent_time() 描述：获取主降备关键步骤耗时，包括线程退出及初始化、checkpoint、共享内存退出及初始化、双写初始化以及bufferpool初始化等。主降备信息查询需要在执行主降备操作的集群的主节点上进行，集群间以及集群内switchover主降备成功后可以查询到相关信息，信息存储于内存，重启后会重置。
  返回类型：setof record
  返回字段说明：
  
  | 字段名称           | 字段类型 | 字段说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
  |:---|:---|:---|
  | key_step_name | text  | 主降备关键步骤： - thread_exit：主降备线程退出。  - checkpoint：主降备刷脏。  - shmem_exit：主降备共享内存退出。  - shmem_init：主降备共享内存初始化。  - bufferpool_init：主降备buffer池初始化。  - dw_init：主降备双写初始化。  - thread_init：主降备线程初始化。   |
  | spent_time     | int  | 主降备关键步骤耗时。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
     
  示例：
  ```
  gaussdb=# SELECT * FROM gs_last_demote_spent_time();
    key_step_name  | spent_time
  -----------------+------------
   thread_exit     |    1.00299
   checkpoint      |    3.19896
   shmem_exit      |    .397594
   shmem_init      |    1.74218
   bufferpool_init |    1.24905
   dw_init         |    .038082
   thread_init     |    .400442
  (7 rows)
  ```
  

- gs_tcache_memory_flush()
  描述：手动唤醒空闲业务线程和stream业务线程，并在对应线程上执行mallctl("thread.tcache.flush", NULL, NULL, NULL, 0);操作，主动清理jemalloc的tcache缓存。
  返回值类型：boolean。成功时则返回t（表示true），失败时则返回f（表示false）。
  ![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
  - 该函数仅在开启线程池的情况下生效。
  
  - 仅具有SYSADMIN权限的用户可以使用该函数。
  
  - 通过此函数可降低other memory，但仅消减jemalloc tcache，对于其他原因导致的other memory升高的场景无效（例如，由大量硬解析引起的内存碎片导致的other memory冲高场景，则无法消减）。
    
 
