Updated on 2025-09-22 GMT+08:00

Statistics Information Functions

Statistics information functions are divided into the following two categories: functions that access databases, using the OID of each table or index in a database to mark the database for which statistics are generated; functions that access servers, identified by the server thread ID, whose value ranges from 1 to the number of currently active servers.

pg_stat_get_db_conflict_tablespace(oid)

Description: Specifies the number of queries canceled due to a conflict between the restored tablespace and the deleted tablespace in the database.

Return type: bigint

pg_stat_get_db_conflict_truncate(oid)

Description: Number of queries canceled due to conflicts with TRUNCATE operations in the database that are being replayed.

Return type: bigint

pg_stat_get_db_conflict_force_recycle(oid)

Description: Number of queries canceled due to forcible recycling triggered by read on standby (ROS) with ultimate RTO.

Return type: bigint

pg_stat_get_db_conflict_standby_query_timeout(oid)

Description: Number of queries canceled because the query time exceeds the upper limit set by ROS with ultimate RTO.

Return type: bigint

pg_stat_get_db_conflict_bufferpin(oid)

Description: Number of conflicting buffers.

Return type: bigint

pg_stat_get_db_conflict_snapshot(oid)

Description: Number of conflicting snapshots.

Return type: bigint

pg_stat_get_db_conflict_startup_deadlock(oid)

Description: Number of conflicting deadlocks.

Return type: bigint

pg_stat_get_db_conflict_all(oid)

Description: Number of queries canceled due to database recovery conflicts (conflicts occurring only on the standby server).

Return type: bigint

pg_control_group_config()

Description: Prints Cgroup configurations on the current node. Only users with the SYSADMIN permission can execute this function.

Return type: record

pg_stat_get_db_stat_reset_time(oid)

Description: Specifies the most recent time when database statistics were reset. It is initialized to the system time during the first connection to each database. The reset time is updated when you call pg_stat_reset on the database and execute pg_stat_reset_single_table_counters against any table or index in it.

Return type: timestamptz

pg_stat_get_function_total_time(oid)

Description: Specifies the total wall clock time spent in the function, in microseconds. The time spent on this function calling other functions is included.

Return type: bigint

pg_stat_get_xact_tuples_returned(oid)

Description: Specifies the number of rows read through sequential scans when the parameter is a table in the current transaction or the number of index entries returned when the parameter is an index.

Return type: bigint

pg_stat_get_xact_numscans(oid)

Description: Specifies the number of sequential scans performed when the parameter is a table in the current transaction or the number of index scans performed when the parameter is an index.

Return type: bigint

pg_stat_get_xact_blocks_fetched(oid)

Description: Specifies the number of disk block fetch requests for a table or an index in the current transaction.

Return type: bigint

pg_stat_get_xact_blocks_hit(oid)

Description: Specifies the number of disk block fetch requests for tables or indexes found in cache in the current transaction.

Return type: bigint

pg_stat_get_xact_function_calls(oid)

Description: Specifies the number of times the function is called in the current transaction.

Return type: bigint

pg_stat_get_xact_function_self_time(oid)

Description: Specifies the time spent only on this function in the current transaction. The time spent on other function call inside this function is not included.

Return type: bigint

pg_stat_get_xact_function_total_time(oid)

Description: Specifies the total wall clock time spent on this function in the current transaction, in microseconds. The time spent on other function call inside this function is included.

Return type: bigint

pg_lock_status()

Description: Queries information about locks held by open transactions. All users can execute this function.

Return type: For details, see the return result in PG_LOCKS, which is obtained by querying this function.

bucket_lock_status()

Description: Queries information about bucket locks held by open transactions. All users can execute this function.

Return type: For details about the returned columns, see the columns except node_name in the view in GS_BUCKET_LOCKS.

gs_bucket_lock_status()

Description: Queries information about bucket locks held by open transactions on all nodes. All users can execute this function.

Return type: For details, see the return result in GS_BUCKET_LOCKS, which is obtained by querying this function.

gs_lwlock_status()

Description: Queries information about all lightweight locks in the database system, including lock waiting and lock holding information. All users can execute this function.

Return type: SETOF record

pg_stat_get_wal_senders()

Description: Queries walsender information on the primary node.

Return type: SETOF record

The following table describes return columns.

Table 1 Return columns

Column

Type

Description

pid

bigint

Thread ID of the WAL sender.

sender_pid

integer

Lightweight thread ID of the WAL sender.

local_role

text

Type of the primary node.

peer_role

text

Type of the standby node.

peer_state

text

Status of the standby node.

state

text

Status of the WAL sender.

catchup_start

timestamp with time zone

Startup time of a catchup task.

catchup_end

timestamp with time zone

End time of a catchup task.

sender_sent_location

text

Sending position of the primary node.

sender_write_location

text

Writing position of the primary node.

sender_flush_location

text

Flushing position of the primary node.

sender_replay_location

text

Redo position of the primary node.

receiver_received_location

text

Receiving position of the standby node.

receiver_write_location

text

Writing position of the standby node.

receiver_flush_location

text

Flushing position of the standby node.

receiver_replay_location

text

Redo position of the standby node.

sync_percent

text

Synchronization percentage.

sync_state

text

Synchronization status.

sync_group

text

Group to which the synchronous replication belongs.

sync_priority

text

Priority of synchronous replication.

sync_most_available

text

Maximum availability mode.

channel

text

Channel information of the WAL sender.

get_paxos_replication_info()

Description: Queries the primary/standby node replication status in Paxos mode.

Return type: SETOF record

The following table describes return columns.

Table 2 Return columns

Column

Type

Description

paxos_write_location

text

Location of the Xlog that has been written to the Distribute Consensus Framework (DCF).

paxos_commit_location

text

Location of the Xlog agreed in the DCF.

local_write_location

text

Path for storing data on a node.

local_flush_location

text

Flushing position of a node.

local_replay_location

text

Redo position of a node.

dcf_replication_info

text

DCF module information of a node. The character string is in JSON format. The fields in the character string are described as follows:

role: role of the current node. The value can be LEADER, FOLLOWER, LOGGER, PASSIVE, or UNKNOW.

term: election term.

run_mode: DCF running mode. The value 0 indicates that the automatic election mode is enabled, the value 1 indicates the manual election mode, and the value 2 indicates that the automatic election mode is disabled.

work_mode: DCF working mode.

hb_interval: heartbeat interval between DCF nodes, in milliseconds.

elc_timeout: DCF election timeout period, in milliseconds.

applied_index: log location that is applied to the state machine.

commit_index: log location that has been saved by most DCF nodes. Logs before commit_index have been made persistent.

first_index: location of the first log saved on the DCF node. This location is moved backward when the DN calls dcf_truncate. The previous logs will be cleared.

last_index: location of the last log saved by the DCF node. This log location contains the logs that are stored in the memory of the DCF node but are not made persistent.

cluster_min_apply_idx: location of the log that has been applied and assumes the smallest index.

leader_id: ID of the leader node.

leader_ip: IP address of the leader node.

leader_port: port of the leader node, for DCF internal use.

nodes: information of other nodes in the cluster, including the node ID, IP address, port number, and role.

Example:

gaussdb=# select * from get_paxos_replication_info();
 paxos_write_location | paxos_commit_location | local_write_location | local_flush_location | local_replay_location |


                                                                                      dcf_replication_info



----------------------+-----------------------+----------------------+----------------------+-----------------------+---------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------
 38F/CD54F690         | 38F/CD54F690          | 38F/CD54F690         | 38F/CD546CF8         | 38F/CD546CF8          | {"stream_id":1,"local_node_id":1,"role":"LEADER","
term":1215,"run_mode":1,"work_mode":0,"stg_mode":1,"hb_interval":1000,"elc_timeout":3000,"auto_elc_pri_en":1,"elc_switch_thd":0,"group":0,"priority":3898464883456,"lead
er_group":0,"is_in_major":1,"applied_index":362830766,"commit_index":362830766,"first_index":355330879,"last_index":3916160068856,"last_term":1215,"dcf_last_index":3628
30766,"dcf_last_disk":362830754,"cluster_min_apply_idx":362830764,"cluster_mode":"primary_cluster","leader_id":1,"leader_ip":"*.*.*.*","leader_port":*,"nodes"
:[{"node_id":1,"ip":"*.*.*.*","port":*,"role":"LEADER","next_index":362830766,"match_index":362830765,"apply_index":362830765},{"node_id":2,"ip":"*.*.*.*
4","port":*,"role":"FOLLOWER","next_index":362830767,"match_index":362830766,"apply_index":362830765},{"node_id":3,"ip":"*.*.*.*","port":*,"role":"LOGGER"
,"next_index":362830767,"match_index":362830766,"apply_index":362830764}]}
(1 row)

pgxc_get_senders_catchup_time()

Description: Queries whether a standby DN in the log catchup state exists in the CN instance query cluster and details about the log catchup state.

Return type: SETOF record

pg_stat_get_stream_replications()

Description: Queries the primary/standby replication status.

Return type: SETOF record

The following table describes return values.

Table 3 Return values

Return Parameter

Type

Description

local_role

text

Local role.

static_connections

integer

Connection statistics.

db_state

text

Database status.

detail_information

text

Detailed information.

pg_stat_get_db_numbackends(oid)

Description: Specifies the number of active server threads for a database.

Return type: integer

pg_stat_get_db_xact_commit(oid)

Description: Specifies the number of transactions committed in a database.

Return type: bigint

pg_stat_get_db_xact_rollback(oid)

Description: Specifies the number of transactions rolled back in a database.

Return type: bigint

pg_stat_get_db_blocks_fetched(oid)

Description: Specifies the number of disk blocks fetch requests for a database.

Return type: bigint

pg_stat_get_db_blocks_hit(oid)

Description: Specifies the number of disk block fetch requests found in cache for a database.

Return type: bigint

pg_stat_get_db_tuples_returned(oid)

Description: Specifies the number of tuples returned for a database.

Return type: bigint

pg_stat_get_db_tuples_fetched(oid)

Description: Specifies the number of tuples fetched for a database.

Return type: bigint

pg_stat_get_db_tuples_inserted(oid)

Description: Specifies the number of tuples inserted in a database.

Return type: bigint

pg_stat_get_db_tuples_updated(oid)

Description: Specifies the number of tuples updated in a database.

Return type: bigint

pg_stat_get_db_blk_read_time(oid)

Description: Time spent in reading data file blocks by backends in this database (unit: ms).

Return type: double

pg_stat_get_db_blk_write_time(oid)

Description: Time spent in writing data file blocks by backends in this database (unit: ms).

Return type: double

pg_stat_get_db_tuples_deleted(oid)

Description: Specifies the number of tuples deleted in a database.

Return type: bigint

pg_stat_get_db_conflict_lock(oid)

Description: Specifies the number of lock conflicts in a database.

Return type: bigint

pg_stat_get_db_deadlocks(oid)

Description: Specifies the number of deadlocks in a database.

Return type: bigint

pg_stat_get_numscans(oid)

Description: If the parameter is a table, the function returns the number of times the table has been read through sequential scans. If the parameter is an index, it returns the number of times index rows have been scanned.

Return type: bigint

pg_stat_get_role_name(oid)

Description: Obtains the username based on the user OID. Only users with the SYSADMIN o MONADMIN permission can access the information.

Return type: text

Example:

gaussdb=#SELECT pg_stat_get_role_name(10);
 pg_stat_get_role_name
-----------------------
 aabbcc
(1 row)

pg_stat_get_tuples_returned(oid)

Description: If the parameter is a table, the function returns the number of live rows read through sequential scans. If the parameter is an index, it returns the number of live index rows.

Return type: bigint

pg_stat_get_tuples_fetched(oid)

Description: If the parameter is a table, the function returns the number of rows fetched through bitmap scans. If the parameter is an index, it returns the number of rows fetched from the original table using simple index scans.

Return type: bigint

pg_stat_get_tuples_inserted(oid)

Description: Specifies the number of rows inserted into a table.

Return type: bigint

pg_stat_get_tuples_updated(oid)

Description: Specifies the number of rows updated in a table.

Return type: bigint

pg_stat_get_tuples_deleted(oid)

Description: Specifies the number of rows deleted from a table.

Return type: bigint

pg_stat_get_tuples_changed(oid)

Description: Specifies the total number of inserted, updated, and deleted rows after a table was last analyzed or autoanalyzed.

Return type: bigint

pg_stat_get_tuples_hot_updated(oid)

Description: Specifies the number of rows hot updated in a table.

Return type: bigint

pg_stat_get_live_tuples(oid)

Description: Specifies the number of live rows in a table.

Return type: bigint

pg_stat_get_dead_tuples(oid)

Description: Specifies the number of dead rows in a table. It indicates the number of inactive row pointers in Ustore tables.

Return type: bigint

pg_stat_get_blocks_fetched(oid)

Description: Specifies the number of disk block fetch requests for a table or an index.

Return type: bigint

pg_stat_get_blocks_hit(oid)

Description: Specifies the number of disk block requests found in cache for a table or an index.

Return type: bigint

pg_stat_get_xact_tuples_fetched(oid)

Description: Specifies the number of tuple rows scanned in a transaction.

Return type: bigint

pg_stat_get_xact_tuples_inserted(oid)

Description: Specifies the number of tuple inserted into the active subtransactions related to a table.

Return type: bigint

pg_stat_get_xact_tuples_deleted(oid)

Description: Specifies the number of deleted tuples in the active subtransactions related to a table.

Return type: bigint

pg_stat_get_xact_tuples_hot_updated(oid)

Description: Specifies the number of hot updated tuples in the active subtransactions related to a table.

Return type: bigint

pg_stat_get_xact_tuples_updated(oid)

Description: Specifies the number of updated tuples in the active subtransactions related to a table.

Return type: bigint

pg_stat_get_last_vacuum_time(oid)

Description: Specifies the most recent time when the autovacuum thread is manually started to clear a table.

Return type: timestamptz

pg_stat_get_last_autovacuum_time(oid)

Description: Specifies the time of the last vacuum initiated by the autovacuum daemon thread on a table.

Return type: timestamptz

pg_stat_get_vacuum_count(oid)

Description: Specifies the number of times a table is manually cleared.

Return type: bigint

pg_stat_get_autovacuum_count(oid)

Description: Specifies the number of times the autovacuum daemon thread is started to clear a table.

Return type: bigint

pg_stat_get_last_analyze_time(oid)

Description: Specifies the last time when a table starts to be analyzed manually or by the autovacuum thread.

Return type: timestamptz

pg_stat_get_last_autoanalyze_time(oid)

Description: Specifies the time when the last analysis initiated by the autovacuum daemon thread on a table.

Return type: timestamptz

pg_stat_get_analyze_count(oid)

Description: Specifies the number of times a table is manually analyzed.

Return type: bigint

pg_stat_get_autoanalyze_count(oid)

Description: Specifies the number of times the autovacuum daemon thread analyzes a table.

Return type: bigint

gs_stat_get_all_tabentries()

Description: Obtains PgStat statistics of other nodes when the GUC parameter enable_gsstat_cache is set to on. This is an internal function. You are advised not to use it directly.

Return type: SETOF record

Table 4 Return parameters describes the return parameters.

Table 4 Return parameters

Return Parameter

Type

Description

node_name

name

Node name (node_name in pgxc_node).

nspname

name

Schema name.

relname

name

Name of a table or index.

tuples_returned

bigint

If it is a table, the number of rows read by a sequential scan is returned. If it is an index, the number of index rows is returned.

tuples_fetched

bigint

If it is a table, the number of rows fetched with a bitmap scan is returned. If it is an index, the number of rows fetched with a simple index scan is returned.

tuples_inserted

bigint

Number of rows inserted into a table.

tuples_updated

bigint

Number of rows updated in a table.

tuples_deleted

bigint

Number of rows deleted from a table.

tuples_hot_updated

bigint

Number of rows HOT-updated in a table.

n_live_tuples

bigint

Number of live rows in a table.

n_dead_tuples

bigint

Number of dead rows in a table. It indicates the number of inactive row pointers in Ustore tables.

blocks_fetched

bigint

Number of disk block fetch requests for a table or index.

blocks_hit

bigint

Number of disk block requests found in cache for a table or index.

numscans

bigint

If it is a table, the number of rows read by a sequential scan is returned. If it is an index, the number of index rows is returned.

autovac_vacuum_timestamp

timestamp with time zone

Time of the last vacuum initiated by the autovacuum daemon on this table.

autovac_vacuum_count

bigint

Number of times that the autovacuum daemon starts cleanup on the table.

autovac_analyze_timestamp

timestamp with time zone

Time of the last analyze initiated by the autovacuum daemon on this table.

autovac_analyze_count

bigint

Number of times the autovacuum daemon analyzes a table.

state_change_timestamp

timestamp with time zone

The update time of monitoring indicator fields in each table in the DBE_PERF.stat_all_tables view is returned.

index_stat_change_timestamp

timestamp with time zone

The update time of monitoring indicator fields in each table in the DBE_PERF.stat_all_indexes view is returned.

state_io_change_timestamp

timestamp with time zone

The update time of monitoring indicator fields in each table in the DBE_PERF.statio_all_indexes and DBE_PERF.statio_all_tables views is returned.

pg_total_autovac_tuples(bool)

Description: Returns tuple records related to the total autovac, such as nodename, nspname, relname, and tuple IUDs. The input parameter specifies whether to query the relation information.

Return type: SETOF record

The following table describes return parameters.

Table 5 Description

Return Parameter

Type

Description

nodename

name

Node name.

nspname

name

Name of a namespace.

relname

name

Name of an object, such as a table, an index, or a view.

partname

name

Partition name.

n_dead_tuples

bigint

Number of dead rows in a table partition. It indicates the number of inactive row pointers in Ustore tables.

n_live_tuples

bigint

Number of live rows in a table partition.

changes_since_analyze

bigint

Number of changes generated by ANALYZE.

pg_total_gsi_autovac_tuples(bool)

Description: Returns all autovac-related tuple records, such as nodename, nspname, relname, and the number of GSI records that have changed since the last ANALYZE operation. The input parameter specifies whether to query the relation information. This function assists AUTOVACUUM in processing GSIs. You are advised not to use this function.

Return type: SETOF record

pg_autovac_status(oid)

Description: Returns autovac information, such as nodename, nspname, relname, analyze, vacuum, thresholds for the ANALYZE and VACUUM operations, and the number of analyzed or vacuumed tuples. Only users with the SYSADMIN permission can use this function.

Return type: SETOF record

The following table describes return parameters.

Table 6 Return parameters

Return Parameter

Type

Description

nspname

text

Name of a namespace.

relname

text

Name of an object, such as a table, an index, or a view.

nodename

text

Node name.

doanalyze

Boolean

Specifies whether to execute ANALYZE.

anltuples

bigint

Number of ANALYZE tuples.

anlthresh

bigint

ANALYZE threshold.

dovacuum

Boolean

Specifies whether to execute VACUUM.

vactuples

bigint

Number of VACUUM tuples.

vacthresh

bigint

VACUUM threshold.

pg_autovac_timeout(oid)

Description: Returns the number of consecutive timeouts during the autovac operation on a table. If the table information is invalid or the node information is abnormal, NULL is returned.

Return type: bigint

pg_autovac_coordinator(oid)

Description: Returns the name of the CN that performs autovac on a table. If the table information is invalid or the node information is abnormal, NULL is returned.

Return type: text

pg_stat_get_last_data_changed_time(oid)

Description: Returns the time when INSERT, UPDATE, DELETE, or TRUNCATE was last performed on a table, or the time when EXCHANGE, TRUNCATE, or DROP was last performed on a partition or subpartition. The data in the last_data_changed column of the PG_STAT_ALL_TABLES view is calculated by using this function. The performance of obtaining the last modification time by using the view is poor when the table has a large amount of data. In this case, you are advised to use functions. The input parameter is a table OID.

Return type: timestamptz

pg_stat_set_last_data_changed_time(oid)

Description: Manually changes the time when INSERT, UPDATE, DELETE, or EXCHANGE/TRUNCATE/DROP PARTITION was last performed.

Return type: void

pg_stat_get_last_updated(oid, text)

Description: Returns the update time of monitoring indicator fields in each table in the DBE_PERF.stat_all_tables, DBE_PERF.stat_all_indexes, DBE_PERF.statio_all_indexes, and DBE_PERF.statio_all_tables views. The input parameter 1 is the table OID, and the input parameter 2 is of the text type. The value can be "stat_table", "stat_index", or "stat_io".

Return type: timestamptz

pg_backend_pid()

Description: Specifies the thread ID of the server thread attached to the current session.

Return type: integer

pg_stat_get_activity(integer)

Description: Returns a record about the backend thread with the specified PID. A record for each active backend in the system is returned if NULL is specified. The returned result does not contain the connection_info column. The initial user, system administrators and users with the MONADMIN permission can view all data. Common users can only query their own results.

Example:

gaussdb=#SELECT * FROM pg_stat_get_activity(139881386280704);
 datid |       pid       | sessionid | usesysid | application_name | state  |                        query                         | waiting |          xact_start           |          query_start          |
    backend_start         |         state_change         | client_addr | client_hostname | client_port | enqueue |     query_id      |   srespool   | global_sessionid | unique_sql_id | trace_id
-------+-----------------+-----------+----------+------------------+--------+------------------------------------------------------+---------+-------------------------------+-------------------------------+-----
--------------------------+------------------------------+-------------+-----------------+-------------+---------+-------------------+--------------+------------------+---------------+----------
 16545 | 139881386280704 |        69 |       10 | gsql             | active | select * from pg_stat_get_activity(139881386280704); | f       | 2022-01-18 19:43:05.167718+08 | 2022-01-18 19:43:05.167718+08 | 2022
-01-18 19:42:33.513507+08 | 2022-01-18 19:43:05.16773+08 |             |                 |          -1 |         | 72620543991624410 | default_pool | 1938253334#69#0  |    3751941862 |
(1 row)

Return type: SETOF record

The following table describes return parameters.

Table 7 Description

Return Parameter

Type

Description

datid

oid

OID of the database that the user session connects to in the backend.

pid

bigint

Backend thread ID.

sessionid

bigint

Session ID.

usesysid

oid

OID of the user logged in to the backend.

application_name

text

Name of the application connected to the backend.

state

text

Overall status of the backend.

query

text

Latest query at the backend. If state is active, this column shows the ongoing query. In all other states, it shows the last query that was executed.

waiting

Boolean

Specifies whether the backend is currently waiting for a lock. If the backend is currently waiting for a lock, the value is true.

xact_start

timestamp with time zone

Time when current transaction was started (null if no transaction is active).

If the current query is the first of its transaction, the value of this column is the same as that of the query_start column.

query_start

timestamp with time zone

Time when the currently active query was started, or time when the last query was started if state is not active For a stored procedure, function, or package, the first query time is queried and does not change with the running of statements in the stored procedure.

backend_start

timestamp with time zone

Time when this process was started, that is, when the client connected to the server.

state_change

timestamp with time zone

Time when state was last modified.

client_addr

inet

IP address of the client connected to the backend. If this column is NULL, it indicates either the client is connected via a UDS on the server or this is an internal thread, such as AUTOVACUUM.

client_hostname

text

Host name of the connected client, obtained by a reverse DNS lookup based on client_addr. This column will be non-null only for IP connections and only when log_hostname is enabled.

client_port

integer

TCP port number that the client uses for communication with this backend (–1 if a Unix socket is used).

enqueue

text

Unsupported currently.

query_id

bigint

ID of a query.

srespool

name

Name of the resource pool.

global_sessionid

text

Global session ID.

unique_sql_id

bigint

Unique SQL statement ID.

trace_id

text

Driver-specific trace ID, which is associated with an application request.

pg_stat_get_activity_with_conninfo(integer)

Description: Returns a record about the backend thread with the specified PID. A record for each active backend in the system is returned if NULL is specified. The initial user, system administrators and users with the MONADMIN permission can view all data. Common users can only query their own results.

Return type: SETOF record

The following table describes return values.

Return Value

Return Type

Return values

datid

oid

OID of the database that the user session connects to in the backend.

pid

bigint

Backend thread ID.

sessionid

bigint

Session ID.

usesysid

oid

OID of the user logged in to the backend.

application_name

text

Name of the application connected to the backend.

state

text

Overall status of the backend.

query

text

Latest query at the backend. If state is active, this column shows the ongoing query. In all other states, it shows the last query that was executed.

waiting

Boolean

Specifies whether the backend is currently waiting for a lock. If the backend is currently waiting for a lock, the value is true.

xact_start

timestamp with time zone

Time when current transaction was started (null if no transaction is active). If the current query is the first of its transaction, the value of this column is the same as that of the query_start column.

query_start

timestamp with time zone

Time when the currently active query was started, or time when the last query was started if state is not active For a stored procedure, function, or package, the first query time is queried and does not change with the running of statements in the stored procedure.

backend_start

timestamp with time zone

Time when this process was started, that is, when the client connected to the server.

state_change

timestamp with time zone

Time when state was last modified.

client_addr

inet

IP address of the client connected to the backend. If this column is NULL, it indicates either the client is connected via a UDS on the server or this is an internal thread, such as AUTOVACUUM.

client_hostname

text

Host name of the connected client, obtained by a reverse DNS lookup based on client_addr. This column will be non-null only for IP connections and only when log_hostname is enabled.

client_port

integer

TCP port number that the client uses for communication with this backend (–1 if a Unix socket is used).

enqueue

text

Unsupported currently.

query_id

bigint

ID of a query.

connection_info

text

A string in JSON format recording the driver type, driver version, driver deployment path, and thread owner of the connected database.

srespool

name

Name of the resource pool.

global_sessionid

text

Global session ID.

unique_sql_id

bigint

Unique SQL statement ID.

trace_id

text

Driver-specific trace ID, which is associated with an application request.

top_xid

xid

Top-level transaction ID of a transaction.

current_xid

xid

Current transaction ID of a transaction.

xlog_quantity

bigint

Amount of Xlogs currently used by a transaction, in bytes.

gs_get_explain(integer)

Description: Returns a running plan for the backend thread with the specified PID. The PID cannot be empty. This function takes effect only when the GUC parameter track_activities is set to on. Only explainable SQL statements whose plans do not contain stream operators are supported. Details are as follows:

  • If the GUC parameter plan_collect_thresh is set to –1, the return result of the function is always empty.
  • If the GUC parameter plan_collect_thresh is set to 0, the current SQL execution time is greater than or equal to the value of log_min_duration_statement, and the total number of tuples processed by all operators in the plan is greater than or equal to 10000, the system starts to collect plans in running state. Each time the total number of tuples processed by all operators exceeds 10000, a collection is performed.
  • If the GUC parameter plan_collect_thresh is set to a value greater than 0, running plans are collected incrementally based on the threshold specified by this parameter.
  • This function can view only the plans generated on CNs. To view the plans generated on DNs, see the gs_get_dn_explain function.

The return value type is text. The following table describes the types and meanings of the fields.

Return Value

Return Type

Return values

Character string of the plans in the running state

text

A-rows in the plan string indicates the number of rows returned by the operator in real time.

gs_get_dn_explain(text, bigint)

Description: Returns a running plan for the backend thread of the DN with the specified node name (from the node_name field in the pgxc_node system catalog) and global session ID. The global session ID cannot be empty. This function takes effect only when the GUC parameter track_activities is set to on. Only explainable SQL statements whose plans do not contain stream operators are supported. Details are as follows:

  • Same as the gs_get_explain function. The global session ID is calculated based on the global_sessionid field in pg_stat_activity. The format of global_sessionid is ${number1}:${number2}#{number3}, for example, 1938253334:1#0. Therefore, the parameter value of the gs_get_dn_explain function is ${number2} x 10000000000 + ${number1}.
  • In addition, this function can be executed only with the ADMIN or MONADMIN permission.
The return value type is text. The following table describes the types and meanings of the fields.

Return Value

Return Type

Return values

Character string of the plans in the running state

text

A-rows in the plan string indicates the number of rows returned by the operator in real time.

pg_stat_get_activity_ng(integer)

Description: Returns a record about the active backend thread with the specified PID. A record for each active backend thread is returned if NULL is specified. System administrators and users with the MONADMIN permission can view all data. Common users can query only their own data.

Return type: SETOF record

The following table describes return fields.

Name

Type

Description

datid

oid

Database OID.

pid

bigint

Backend thread ID.

sessionid

bigint

Session ID.

node_group

text

Node group of the user to which the data belongs.

pg_stat_get_function_calls(oid)

Description: Specifies the number of times the function has been called.

Return type: bigint

pg_stat_get_function_self_time(oid)

Description: Specifies the time spent on only this function. The time spent on nested functions to call other functions is excluded.

Return type: bigint

pg_stat_get_backend_idset()

Description: Sets the number of currently active server threads (from 1 to the number of active server threads).

Return type: setofinteger

pg_stat_get_backend_pid(integer)

Description: Specifies the ID of the given server thread.

Return type: bigint

pg_stat_get_backend_dbid(integer)

Description: Specifies the ID of the database connected to the given server thread.

Return type: oid

pg_stat_get_backend_userid(integer)

Description: Specifies the user ID of the given server process. This function can be called only by system administrators.

Return type: oid

pg_stat_get_backend_activity(integer)

Description: Active command of the given server thread, but only if the current user is a system administrator or the same user as that of the session being queried and track_activities is enabled.

Return type: text

pg_stat_get_backend_waiting(integer)

Description: Returns true if the given server thread is waiting for a lock, but only if the current user is a system administrator or the same user as that of the session being queried and track_activities is enabled.

Return type: Boolean

pg_stat_get_backend_activity_start(integer)

Description: Specifies the time when the given server thread's currently executing query is started only if the current user is a system administrator or the user of the session being queried and track_activities is enabled.

Return type: timestamp with time zone

pg_stat_get_backend_xact_start(integer)

Description: Specifies the time when the given server thread's currently executing transaction is started only if the current user is a system administrator or the user of the session being queried and track_activities is enabled.

Return type: timestamp with time zone

pg_stat_get_backend_start(integer)

Description: Specifies the time when the given server thread is started. If the current user is neither a system administrator nor the same user as that of the session being queried, NULL is returned.

Return type: timestamp with time zone

pg_stat_get_backend_client_addr(integer)

Description: Specifies the IP address of a backend connected to a specified client. If the client is connected over a UDS, or if the current user is neither a system administrator nor the same user as that of the session being queried, NULL will be returned.

Return type: inet

pg_stat_get_backend_client_port(integer)

Description: Specifies the TCP port of a backend connected to a specified client. If the client is connected over a UDS, –1 will be returned. If the current user is neither a system administrator nor the same user as that of the session being queried, NULL will be returned.

Return type: integer

pg_stat_get_bgwriter_timed_checkpoints()

Description: Specifies the time when the background writer thread starts scheduled checkpoints (because checkpoint_timeout has expired).

Return type: bigint

pg_stat_get_bgwriter_requested_checkpoints()

Description: Specifies the time when the background writer thread starts checkpoints based on requests from the backend because checkpoint_segments has been exceeded or the CHECKPOINT command has been executed.

Return type: bigint

pg_stat_get_bgwriter_buf_written_checkpoints()

Description: Specifies the number of buffers written by the background writer thread during checkpoints.

Return type: bigint

pg_stat_get_bgwriter_buf_written_clean()

Description: Specifies the number of buffers written by the background writer thread for routine cleaning of dirty pages.

Return type: bigint

pg_stat_get_bgwriter_maxwritten_clean()

Description: Specifies the time when the background writer thread stops its cleaning scan because it has written more buffers than specified in the bgwriter_lru_maxpages parameter.

Return type: bigint

pg_stat_get_buf_written_backend()

Description: Specifies the number of buffers written by the backend thread because they need to allocate a new buffer.

Return type: bigint

pg_stat_get_buf_alloc()

Description: Specifies the total number of the allocated buffers.

Return type: bigint

pg_stat_clear_snapshot()

Description: Discards the current statistics snapshot. Only users with the SYSADMIN or MONADMIN permission can execute this function.

Return type: void

pg_stat_reset()

Description: Resets the statistics counter of the current database to 0 (the SYSADMIN permission is required).

Return type: void

gs_stat_reset()

Description: Resets the statistics counter of the current database on each node to 0 (the SYSADMIN permission is required).

Return type: void

pg_stat_reset_shared(text)

Description: Resets the statistics counter of the current database on each node in a shared cluster to 0 (the SYSADMIN permission is required).

Return type: void

pg_stat_reset_single_table_counters(oid)

Description: Resets the statistics counter of a specified table or index in the current database to 0 (the SYSADMIN permission is required).

Return type: void

pg_stat_reset_single_function_counters(oid)

Description: Resets the statistics counter of a specified function in the current database to 0 (the SYSADMIN permission is required).

Return type: void

pgxc_fenced_udf_process(integer)

Description: Displays the number of UDF master and worker threads. Only users with the SYSADMIN or MONADMIN permission can execute this function. If the input parameter is set to 1, the number of Master threads is queried. If the input parameter is set to 2, the number of Worker threads is queried. If the input parameter is set to 3, all Worker threads are terminated.

Return type: text

fenced_udf_process(integer)

Description: Shows the number of local UDF Master and Work threads. If the input parameter is set to 1, the number of Master threads is queried. If the input parameter is set to 2, the number of Worker threads is queried. If the input parameter is set to 3, all Worker threads are terminated.

Return type: text

total_cpu()

Description: Obtains the CPU time used by the current node, in jiffies.

Return type: bigint

total_memory()

Description: Obtains the size of the virtual memory used by the current node, in KB.

Return type: bigint

pgxc_terminate_all_fenced_udf_process()

Description: Kills all UDF worker threads. Only users with the SYSADMIN or MONADMIN permission can execute this function.

Return type: Boolean

gs_get_nodegroup_tablecount(name)

Description: Obtains the total number of user tables in all databases in a node group.

Return type: integer

pgxc_max_datanode_size(name)

Description: Obtains the maximum disk space occupied by database files on all DNs in a node_group. The unit is byte.

Return type: bigint

gs_check_tables_distribution()

Description: Checks whether the user table distribution in the system is consistent. If no record is returned, table distribution is consistent. This function cannot be called during redistribution in scale-in or scale-out.

Return type: record

pg_stat_bad_block(text, int, int, int, int, int, timestamp with time zone, timestamp with time zone)

Description: Obtains damage information about pages after the current node is started.

Return type: record

pgxc_stat_bad_block(text, int, int, int, int, int, timestamp with time zone, timestamp with time zone)

Description: Obtains damage information about pages after all nodes in the cluster are started.

Return type: record

pg_stat_bad_block_clear()

Description: Deletes the page damage information that is read and recorded on the node (the SYSADMIN permission is required).

Return type: void

pgxc_stat_bad_block_clear

Description: Deletes the page damage information that is read and recorded on all nodes in the cluster (the SYSADMIN permission is required).

Return type: void

pgxc_log_comm_status(void)

Description: When the SCTP communication mode is used, the PGXC system view exports the communication layer status of DNs to each log file. (Due to specification changes, the current version no longer supports this feature. Do not use it.)

Return type: void

gs_respool_exception_info(pool text)

Description: Queries the query rule of a specified resource pool.

Return type: record

gs_control_group_info(pool text)

Description: Queries information about Cgroups associated with a resource pool. Only users with the SYSADMIN permission can execute this function.

Return type: record

The command output is as follows:

Attribute

Value

Description

name

class_a:workload_a1

Class name and workload name.

class

class_a

Class Cgroup name.

workload

workload_a1

Workload Cgroup name.

type

DEFWD

Cgroup type (Top, CLASS, BAKWD, DEFWD, or TSWD).

gid

87

Cgroup ID.

shares

30

Percentage of CPU resources to those on the parent node.

limits

0

Percentage of CPU cores to those on the parent node.

rate

0

Allocation ratio in Timeshare.

cpucores

0-3

Number of CPU cores.

gs_all_control_group_info()

Description: Collects information about all Cgroups in the database. For details about the columns returned by the function, see 16.3.48 GS_ALL_CONTROL_GROUP_INFO.

Return type: record

gs_get_control_group_info()

Description: Collects information about all Cgroups. For details about the columns returned by the function, see 16.3.53 GS_GET_CONTROL_GROUP_INFO. Only users with the SYSADMIN permission can execute this function.

Return type: record

gs_get_session_sql_memory()

Description: Views the memory usage of currently running statements. For details about the columns returned by the function, see SESSION_SQL_MEMORY.

Return type: record

gs_get_global_session_sql_memory()

Description: Views the memory usage of currently running statements on all nodes. For details about the columns returned by the function, see GLOBAL_SESSION_SQL_MEMORY.

Return type: record

gs_blackbox_dump()

Description: Exports black box files from the system to the $GAUSSLOG/gs_blackbox/{nodename} directory. If the command is successfully executed, the black box file names generated in the $GAUSSLOG/gs_blackbox/{nodename} directory is returned.

Return type: text

gs_blackbox_show(blackBoxFile cstring)

Description: Parses black box files and displays them in a table.

The following lists related parameters.

Parameter

Description

Value Range

blackBoxFile

The black box files to be parsed. If no parameter is specified, the black box files collected by the current process are displayed.

The value is a string or is not specified. If a valid black box file name is specified, the file with the specified name in the $GAUSSLOG/gs_blackbox/nodename directory is read. Only the file name is supported. An error is reported if the file with the specified name does not exist in the $GAUSSLOG/gs_blackbox/nodename directory.

Return type: SETOF record

The following table describes return values.

Return Value

Return Type

Return values

type

text

Black box field type.

tid

bigint

Thread ID.

sample_time

timestamp

Collection time.

value

text

Content recorded in the black box.

The following table describes query results.

type

tid

sample_time

value

ERRNUMBER

123456

2024-03-19 09:33:17.386

19460

BLACK_BOX_PLSQL_EXCEPTION

45678

2024-03-19 09:33:18.396

message: "Dropped rowtype entry for non-dropped column when make tuple."

funcname: basic_make_tuple_from_row

filename:pl_exec.cpp

context:xxxx

gs_blackbox_list()

Description: Lists black box files in the black box directory of the current instance. The default directory is $GAUSSLOG/gs_blackbox/{nodename}.

Return type: SETOF record

The following table describes return values.

Return Value

Return Type

Return values

file

text

Name of the black box file.

get_instr_workload_info(integer)

Description: Obtains the transaction volume and time information on the current CN.

Return type: record

Attribute

Value

Description

user_oid

10

User ID.

commit_counter

4

Number of frontend transactions that were committed.

rollback_counter

1

Number of frontend transactions that were rolled back.

resp_min

949

Minimum response time of frontend transactions (unit: μs).

resp_max

201891

Maximum response time of frontend transactions (unit: μs).

resp_avg

43564

Average response time of frontend transactions (unit: μs).

resp_total

217822

Total response time of frontend transactions (unit: μs).

bg_commit_counter

910

Number of backend transactions that were committed.

bg_rollback_counter

0

Number of backend transactions that were rolled back.

bg_resp_min

97

Minimum response time of backend transactions (unit: μs).

bg_resp_max

678080687

Maximum response time of backend transactions (unit: μs).

bg_resp_avg

327847884

Average response time of backend transactions (unit: μs).

bg_resp_total

298341575300

Total response time of backend transactions (unit: μs).

dbid

oid

Database ID.

pv_instance_time()

Description: Obtains the time consumed in each execution phase on the current node.

Return type: record

Stat_name Attribute

Value

Description

DB_TIME

1062385

Total end-to-end wall time consumed by all threads (unit: μs).

CPU_TIME

311777

Total CPU time consumed by all threads (unit: μs).

EXECUTION_TIME

380037

Total time consumed on the executor (unit: μs).

PARSE_TIME

6033

Total time consumed for parsing SQL statements (unit: μs).

PLAN_TIME

173356

Total time consumed for generating an execution plan (unit: μs).

REWRITE_TIME

2274

Total time consumed for rewriting queries (unit: μs).

PL_EXECUTION_TIME

0

Total time consumed for executing PL/pgSQL statements (unit: μs).

PL_COMPILATION_TIME

557

Total time consumed for compiling SQL statements (unit: μs).

NET_SEND_TIME

1673

Total time consumed for sending data over the network (unit: μs).

DATA_IO_TIME

426622

Total time consumed for reading and writing data (unit: μs).

DBE_PERF.get_global_instance_time()

Description: Provides the time consumed in each key phase in the entire cluster. The time consumed can be queried only on the CN. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

get_instr_unique_sql()

Description: Obtains information about execution statements (normalized SQL statements) on the current node. Only users with the SYSADMIN or MONADMIN permission can query this function. For details about the columns returned by the function, see STATEMENT.

Return type: record

get_instr_wait_event(integer)

Description: Obtains the statistics on wait events of the current node.

Return type: record

get_instr_user_login()

Description: Obtains the number of user login and logout times on the current node. Only users with the SYSADMIN or MONADMIN permission can execute this function.

Return type: record

get_instr_rt_percentile(integer)

Description: Obtains the distribution information about the response time of 80% and 95% SQL statements in the CCN. The unified cluster information is stored on the CCN. The query result from other nodes is 0.

Return type: record

get_node_stat_reset_time()

Description: Obtains statistics about reset (restart, primary/standby switchover, and database deletion) time of the current node.

Return type: record

gs_paxos_stat_replication()

Description: Queries the standby node information on the primary node.

Return type: SETOF record

The following table describes return columns.

Column

Type

Description

local_role

text

Role of the sender node.

peer_role

text

Role of the receiver node.

local_dcf_role

text

DCF role of the sender node.

peer_dcf_role

text

DCF role of the receiver node.

peer_state

text

Status of the receiver node.

sender_write_location

text

Location in the Xlog buffer where the sender node is written.

sender_commit_location

text

Barrier reached for the DCF logs of the sender node.

sender_flush_location

text

Location in the Xlog disk where the sender node is written.

sender_replay_location

text

Location where the sender node replays logs.

receiver_write_location

text

Location in the Xlog buffer where the receiver node is written.

receiver_commit_location

text

Barrier reached for the DCF logs of the receiver node.

receiver_flush_location

text

Location in the Xlog disk where the receiver node is written.

receiver_replay_location

text

Location where the receiver node replays Xlogs.

sync_percent

text

Synchronization percentage.

dcf_run_mode

int4

DCF synchronization mode.

channel

text

Channel information.

gs_wlm_get_user_info(int)

Description: Obtains information about all users. The input parameter is of the int type and can be any int value or NULL. Only users with the SYSADMIN permission can execute this function.

Return type: record

gs_wlm_readjust_user_space(oid)

Description: Corrects the storage space usage of all users. Only the administrator can execute this function.

Return type: record

gs_wlm_readjust_user_space_through_username(text name)

Description: Corrects the storage space usage of a specified user. Common users can use this function to modify only their own usage. Only the administrator can modify the usage of all users. If the value of name is 0000, the usage of all users needs to be modified.

Return type: record

gs_wlm_readjust_user_space_with_reset_flag(text name, boolean isfirst)

Description: Corrects the storage space usage of a specified user. If the input parameter isfirst is set to true, statistics are collected from 0. Otherwise, statistics are collected from the previous result. Common users can modify only their own usage. Only administrators can modify the usage of all users. If the value of name is 0000, the usage of all users needs to be modified.

Return type: record

gs_io_wait_status()

Description: Returns the real-time statistics on I/O control on the current node.

Return type: SETOF record

Name

Type

Description

node_name

text

Node name.

device_name

text

Name of the data disk mounted to the node.

read_per_second

float

Number of read completions per second.

write_per_second

float

Number of write completions per second.

write_ratio

float

Ratio of the disk write I/Os to the total I/Os.

io_util

float

Percentage of the I/O time to the total CPU time per second.

total_io_util

integer

Level of the CPU time occupied by the last three I/Os. The value ranges from 0 to 6.

tick_count

integer

Interval for updating disk I/O information. The value is fixed to 1 second. The value is cleared each time before data is read.

io_wait_list_len

integer

Size of the I/O request thread wait queue. If the value is 0, no I/O is under control.

gs_get_shared_memctx_detail(text)

Description: Returns the memory allocation details of the specified memory context, including the file, line number, and size of each memory allocation (the size of the same line in the same file is accumulated). Only the memory context queried through the PG_SHARED_MEMORY_DETAIL view can be queried. The input parameter is the memory context name (that is, the contextname column in the result returned by PG_SHARED_MEMORY_DETAIL). To query this function, you must have the SYSADMIN or MONADMIN permission.

Return type: SETOF record

Name

Type

Description

file

text

Name of the file where the memory is applied for.

line

int8

Line number of the code in the file where the requested memory is located.

size

int8

Size of the allocated memory. The value is accumulated if the memory is allocated for multiple times to the same line in the same file.

gs_get_session_memctx_detail(text)

Description: Returns the memory allocation details of the specified memory context, including the file, line number, and size of each memory allocation (the size of the same line in the same file is accumulated). This parameter is valid only in thread pool mode. Only the memory context queried through the PV_SESSION_MEMORY_CONTEXT view can be queried. The input parameter is the memory context name (that is, the contextname column in the result returned by PV_SESSION_MEMORY_CONTEXT). To query this function, you must have the SYSADMIN or MONADMIN permission.

Return type: SETOF record

Name

Type

Description

file

text

Name of the file where the memory is applied for.

line

int8

Line number of the code in the file where the requested memory is located.

size

int8

Size of the allocated memory, in bytes. The value is accumulated if the memory is allocated for multiple times to the same line of the same file.

This view takes effect only in thread pool mode.

gs_get_thread_memctx_detail(tid,text)

Description: Returns the memory allocation details of the specified memory context, including the file, line number, and size of each memory allocation (the size of the same line in the same file is accumulated). Only the memory context queried through the PV_THREAD_MEMORY_CONTEXT view can be queried. The first input parameter is the thread ID (the tid column of the data returned by PV_THREAD_MEMORY_CONTEXT), and the second parameter is the memory context name (the contextname column of the data returned by PV_THREAD_MEMORY_CONTEXT). To query this function, you must have the SYSADMIN or MONADMIN permission.

Return type: SETOF record

Name

Type

Description

file

text

Name of the file where the memory is applied for.

line

int8

Line number of the code in the file where the requested memory is located.

size

int8

Size of the allocated memory, in bytes. The value is accumulated if the memory is allocated for multiple times to the same line of the same file.

gs_get_history_memory_detail(cstring)

Description: Queries historical memory snapshot information. The input parameter type is cstring. The value can be NULL or the name of the memory snapshot log file.

  1. If the value of the input parameter is NULL, the list of all memory snapshot log files on the current node is displayed.
  2. If the value of the input parameter is the name of the memory snapshot log file in the list queried in 1, the detailed information about the memory snapshot recorded in the log file is displayed.
  3. If you enter any other input parameter, the system displays a message indicating that the input parameter is incorrect or the file fails to be opened.

To query this function, you must have the SYSADMIN or MONADMIN permission.

Return type: text

Name

Type

Description

memory_info

text

Memory information. If the input parameter of the function is set to NULL, the memory snapshot file list is displayed. If the input parameter is set to the name of the memory snapshot file, the content of the file is displayed.

gs_stat_get_hotkeys_info()

If the GUC parameter enable_hotkeys_collection is set to off, the gs_stat_get_hotkeys_info and global_stat_get_hotkeys_info functions as well as the global_stat_hotkeys_info view cannot be queried. The use of the gs_stat_clean_hotkeys and global_stat_clean_hotkeys APIs is not affected.

Description: Obtains the hotspot key statistics on the current node.

Return type: record

1
2
3
4
5
6
gaussdb=#SELECT * FROM gs_stat_get_hotkeys_info() ORDER BY count, hash_value;
 database_name | schema_name |    table_name     | key_value | hash_value | count
---------------+-------------+-------------------+-----------+------------+-------
 regression    | public      | hotkey_single_col | {22}      | 1858004829 |     2
 regression    | public      | hotkey_single_col | {11}      | 2011968649 |     2
(2 rows)

Name

Type

Description

database_name

text

Name of the database where the hotspot key is located.

schema_name

text

Name of the schema where the hotspot key is located.

table_name

text

Name of the table where the hotspot key is located.

key_value

text

Value of the hotspot key.

hash_value

bigint

Hash value of the hotspot key in the database. If the table is a list or range distributed table, the value of this column is 0.

count

bigint

Frequency of accessing the hotspot key.

gs_stat_clean_hotkeys()

  • Hot key detection is designed for high-concurrency and heavy-traffic scenarios. In the scenario where the access is performed for several times, the query result may be inaccurate.
  • The clearing API is designed to clear only the statistics in the LRU queue but not the historical data in the FIFO queue. Therefore, if historical key values in the FIFO queue are accessed again after the clearing is complete, these key values are still processed as hotspot keys. This rule also applies to global_stat_clean_hotkeys.

Description: Clears statistics on hotspot keys on the current node.

Return type: Boolean

1
2
3
4
5
gaussdb=#SELECT * FROM gs_stat_clean_hotkeys();
 gs_stat_clean_hotkeys
-----------------------
 t
(1 row)

global_stat_get_hotkeys_info()

Run the SELECT * FROM global_stat_hotkeys_info MINUS SELECT * FROM global_stat_get_hotkeys_info(); command during service execution. The value may not be 0 due to time difference.

Description: Obtains statistics on hotspot keys in the entire cluster.

Return type: record

1
2
3
4
5
6
gaussdb=#SELECT * FROM global_stat_get_hotkeys_info() ORDER BY count, hash_value;
 database_name | schema_name |    table_name     | key_value | hash_value | count
---------------+-------------+-------------------+-----------+------------+-------
 regression    | public      | hotkey_single_col | {22}      | 1858004829 |     2
 regression    | public      | hotkey_single_col | {11}      | 2011968649 |     2
(2 rows)

global_stat_clean_hotkeys()

Description: Clears statistics on hotspot keys in the entire cluster.

Return type: Boolean

1
2
3
4
5
gaussdb=#SELECT * FROM global_stat_clean_hotkeys();
 global_stat_clean_hotkeys
-----------------------
 t
(1 row)

global_comm_get_recv_stream()

Description: Obtains the status of the stream received by all communications libraries on all DNs. For details about the columns returned by the function, see PG_COMM_RECV_STREAM.

Return type: record

global_comm_get_send_stream()

Description: Obtains the status of the stream sent by all communications libraries on all DNs. For details about the columns returned by the function, see PG_COMM_SEND_STREAM.

Return type: record

global_comm_get_status()

Description: Obtains the communications library status on all DNs. For details about the columns returned by the function, see PG_COMM_STATUS.

Return type: record

global_comm_client_info()

Description: Obtains information about active client connections on global nodes. For details about the columns returned by the function, see COMM_CLIENT_INFO.

Return type: record

global_comm_get_client_info()

Description: Obtains information about client connections of global nodes. For details about the columns returned by the function, see COMM_CLIENT_INFO.

Return type: record

pgxc_stat_activity()

Description: Displays information about all CNs in the current cluster queried by the current user. Only users with the SYSADMIN or MONADMIN permission can execute this function, and common users can view only their own information. Three columns are added to version 505.0.0. If this function is executed during the gray upgrade observation period, an error is reported. In this case, you need to use PG_STAT_ACTIVITY to directly connect to the target node for query.

Return type: record

Name

Type

Description

coorname

text

Name of a CN in the current cluster.

datid

oid

OID of the database that the user session connects to in the backend.

datname

text

Name of the database that the user session connects to in the backend.

pid

bigint

Backend thread ID.

sessionid

bigint

Session ID.

usesysid

oid

OID of the user logged in to the backend.

usename

text

Name of the user logged in to the backend.

application_name

text

Name of the application connected to the backend.

client_addr

inet

IP address of the client connected to the backend. If this column is NULL, it indicates either the client is connected via a UDS on the server or this is an internal thread, such as AUTOVACUUM.

client_hostname

text

Host name of the connected client, obtained by a reverse DNS lookup based on client_addr. This column will be non-null only for IP connections and only when log_hostname is enabled.

client_port

integer

TCP port number that the client uses for communication with this backend (–1 if a Unix socket is used).

backend_start

timestamp with time zone

Time when this process was started, that is, when the client connected to the server.

xact_start

timestamp with time zone

Time when current transaction was started (null if no transaction is active). If the current query is the first of its transaction, the value of this column is the same as that of the query_start column.

query_start

timestamp with time zone

Time when the currently active query was started, or time when the last query was started if state is not active For a stored procedure, function, or package, the first query time is queried and does not change with the running of statements in the stored procedure.

state_change

timestamp with time zone

Time when state was last modified.

waiting

Boolean

Specifies whether the backend is currently waiting for a lock. If the backend is currently waiting for a lock, the value is true.

enqueue

text

Queuing status of a statement. The value can be:
  • waiting in queue: The statement is in the queue.
  • Empty: The statement is running.

state

text

Overall status of the backend. The value can be:
  • active: The backend is executing a query.
  • idle: The backend is waiting for a new client command.
  • idle in transaction: The backend is in a transaction, but there is no statement being executed in the transaction.
  • idle in transaction (aborted): The backend is in a transaction, but there are statements failed in the transaction.
  • fastpath function call: The backend is executing a fast-path function.
  • disabled: This state is reported if track_activities is disabled in this backend.
NOTE:

Only system administrators can view the session status of their accounts. The state information of other accounts is empty. For example, after user judy is connected to the database, the state information of user joe and the initial user omm in PGXC_STAT_ACTIVITY is empty.

SELECT datname, usename, usesysid, state,pid FROM pgxc_stat_activity;
 datname  | usename | usesysid | state  |       pid
----------+---------+----------+--------+-----------------
 testdb | omm     |       10 |        | 139968752121616
 testdb | omm     |       10 |        | 139968903116560
 db_tpcds | judy    |    16398 | active | 139968391403280
 testdb | omm     |       10 |        | 139968643069712
 testdb | omm     |       10 |        | 139968680818448
 testdb | joe     |    16390 |        | 139968563377936
(6 rows)

resource_pool

name

Resource pool used by the user.

query_id

bigint

ID of a query.

query

text

Latest query at the backend. If state is active, this column shows the ongoing query. In all other states, it shows the last query that was executed.

global_sessionid

text

Global session ID.

unique_sql_id

bigint

Unique SQL statement ID.

trace_id

text

Driver-specific trace ID, which is associated with an application request.

top_xid

xid

Top-level transaction ID of a transaction.

current_xid

xid

Current transaction ID of a transaction.

xlog_quantity

bigint

Amount of Xlogs currently used by a transaction, in bytes.

pgxc_stat_activity_with_conninfo()

Description: Displays query information about the current user on all CNs in the current cluster. For details, see the PGXC_STAT_ACTIVITY view. Only users with the SYSADMIN or MONADMIN permission can execute this function, and common users can view only their own information.

Return type: record

pgxc_stat_all_tables()

Description: Displays statistics on a row in each table (including TOAST tables) on each node. Only users with the SYSADMIN or MONADMIN permission can execute this function.

Return type: record

pgxc_get_thread_wait_status()

Description: Queries the call hierarchy between threads generated by all SQL statements on each node in a cluster and the blocking status of each thread.

Return type: record

pv_session_memory

Description: Collects statistics on memory usage at the session level, including all the memory allocated to GaussDB and stream threads on DNs for jobs currently executed by users.

If the GUC parameter enable_memory_limit is set to off, this function cannot be used.

Return type: record

Table 8 Return values

Name

Type

Description

sessid

text

Thread start time and ID.

init_mem

integer

Memory allocated to the currently executed jobs before they enter the executor, in MB.

used_mem

integer

Memory allocated to the currently executed jobs, in MB.

peak_mem

integer

Peak memory allocated to the currently executed jobs, in MB.

DBE_PERF.gs_stat_activity_timeout(int)

Description: Obtains information about query jobs whose execution time exceeds the timeout threshold on the current node. The correct result can be returned only when the GUC parameter track_activities is set to on. The timeout threshold ranges from 0 to 2147483. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: SETOF record

Name

Type

Description

database

name

Name of the database to which a user session is connected.

pid

bigint

Backend thread ID.

sessionid

bigint

Session ID.

usesysid

oid

OID of the user logged in to the backend.

application_name

text

Name of the application connected to the backend.

query

text

Query that is being executed on the backend.

xact_start

timestamptz

Time when the current transaction is started.

query_start

timestamptz

Time when the current query starts For a stored procedure, function, or package, the first query time is queried and does not change with the running of statements in the stored procedure.

query_id

bigint

ID of a query.

DBE_PERF.global_stat_activity_timeout(int)

Description: Obtains information about query jobs whose execution time exceeds the timeout threshold in the current system (all CNs). The correct result can be returned only when the GUC parameter track_activities is set to on. The timeout threshold ranges from 0 to 2147483. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: SETOF record

Name

Type

Description

nodename

text

Name of the CN connected to the user session.

database

name

Name of the database to which a user session is connected.

pid

bigint

Backend thread ID.

sessionid

bigint

Session ID.

usesysid

oid

OID of the user logged in to the backend.

application_name

text

Name of the application connected to the backend.

query

text

Query that is being executed on the backend.

xact_start

timestamptz

Time when the current transaction is started.

query_start

timestamptz

Time when the current query starts For a stored procedure, function, or package, the first query time is queried and does not change with the running of statements in the stored procedure.

query_id

bigint

ID of a query.

DBE_PERF.get_global_active_session()

Description: Displays a summary of samples in the ACTIVE SESSION PROFILE memory on all CNs and primary DNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function. The event_start_time, current_xid, and top_xid columns are added to GaussDB Kernel 505.0. When GaussDB Kernel is upgraded to GaussDB Kernel 505.0 or later, these new columns cannot be queried during the upgrade observation period.

Return type: record

DBE_PERF.get_global_os_runtime()

Description: Displays the running status of the current OS. This function can be queried only on CNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_os_threads()

Description: Provides thread status information on all normal nodes in the entire cluster. The information can be queried only on CNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_workload_sql_count()

Description: Provides the count information of SELECT, UPDATE, INSERT, DELETE, DDL, DML, and DCL in different loads in the entire cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_workload_sql_elapse_time()

Description: Provides SELECT, UPDATE, INSERT, DELETE, and response time information (TOTAL, AVG, MIN, and MAX) in different loads in the entire cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_workload_transaction()

Description: Obtains the transaction volume and time information on all nodes in the cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_session_stat()

Description: Obtains the session status information on all nodes in the cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

The status information contains the following 14 items: commit, rollback, sql, table_scan, blocks_fetched, physical_read_operation, shared_blocks_dirtied, local_blocks_dirtied, shared_blocks_read, local_blocks_read, blocks_read_time, blocks_write_time, sort_imemory, and sort_idisk.

DBE_PERF.get_global_session_time()

Description: Provides the time consumed in each key phase on each node in the entire cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_session_memory()

Description: Aggregates statistics on memory usage at the session level on each node in the unit of MB, including all the memory allocated to GaussDB and stream threads on DNs for jobs currently executed by users. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_session_memory_detail()

Description: Aggregates statistics on thread memory usage on each node by the MemoryContext node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_session_stat_activity()

Description: Aggregates information about running threads on each node in the cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_thread_wait_status()

Description: Aggregates the blocking waiting status of the backend thread and auxiliary thread on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_operator_history_table()

Description: Aggregates the operator records (persistent) after jobs are executed by the current user on all CNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_operator_history()

Description: Aggregates the operator records after jobs are executed by the current user on all CNs. After a cluster is created, by default, you must have the MONADMIN or SYSADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_operator_runtime()

Description: Aggregates real-time operator records of jobs executed by the current user on all CNs. After a cluster is created, by default, you must have the MONADMIN or SYSADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statement_complex_history()

Description: Aggregates the historical records of complex queries executed by the current user on all CNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statement_complex_history_table()

Description: Aggregates the historical records of complex queries (persistent) executed by the current user on all CNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statement_complex_runtime()

Description: Aggregates real-time information about complex queries executed by the current user on all CNs. After a cluster is created, by default, you must have the MONADMIN or SYSADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_memory_node_detail()

Description: Aggregates the memory usage of a database on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_shared_memory_detail()

Description: Aggregates the usage information about the shared memory contexts on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_comm_delay()

Description: Aggregates the communications library delay status on all DNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_comm_recv_stream()

Description: Aggregates the status of the stream received by the communications library on all DNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_comm_send_stream()

Description: Aggregates the status of the stream sent by the communications library on all DNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_comm_status()

Description: Aggregates the status of the communications library on all DNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statio_all_indexes()

Description: Aggregates index information and I/O statistics in the current database on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_local_toastname_and_toastindexname()

Description: Provides the mapping between the name and index of the local TOAST table and its associated tables. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_statio_all_indexes()

Description: Collects statistics on each index row in the current database of all nodes and displays I/O statistics of a specific index. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statio_all_sequences()

Description: Provides I/O status information about all sequences in the namespace. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statio_all_tables()

Description: Aggregates I/O statistics on each table in the database on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_statio_all_tables()

Description: Collects statistics on I/Os of each table in the cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_local_toast_relation()

Description: Provides the mapping between the name of the local TOAST table and its associated tables. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statio_sys_indexes()

Description: Aggregates I/O status information about all system catalog indexes in namespaces on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_statio_sys_indexes()

Description: Collects statistics on I/O status information about all system catalog indexes in namespaces on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statio_sys_sequences()

Description: Provides I/O status information about all system catalog sequences in namespaces. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statio_sys_tables()

Description: Provides I/O status information about all system catalogs in the namespaces on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_statio_sys_tables()

Description: Aggregates I/O status information about all system catalogs in the namespaces of the cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statio_user_indexes()

Description: Provides I/O status information about all user relationship table indexes in the namespaces on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_statio_user_indexes()

Description: Aggregates I/O status information about all user relationship table indexes in the namespaces of the cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statio_user_sequences()

Description: Provides I/O status information about all user sequences in the namespaces on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_statio_user_tables()

Description: Provides I/O status information about all user relationship tables in the namespaces on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_statio_user_tables()

Description: Aggregates I/O status information about all user relationship tables in the namespaces of the cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_dn_stat_all_tables()

Description: Aggregates statistics on all tables in the database on each DN. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_cn_stat_all_tables()

Description: Aggregates statistics on all tables in the database on each CN. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_dn_stat_all_tables()

Description: Collects statistics on all tables in the database on each DN. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_cn_stat_all_tables()

Description: Collects statistics on all tables in the database on each CN. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_all_indexes()

Description: Aggregates statistics on all indexes in the database on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_stat_all_indexes()

Description: Collects statistics on all indexes in the database on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_sys_tables()

Description: Aggregates statistics on the system catalogs of all the namespaces in the pg_catalog or information_schema schema on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_stat_sys_tables()

Description: Collects statistics on the system catalogs of all the namespaces in the pg_catalog or information_schema schema on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_sys_indexes()

Description: Aggregates index status information about all system catalogs in the pg_catalog or information_schema schema on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_stat_sys_indexes()

Description: Collects index status information about all system catalogs in the pg_catalog or information_schema schema on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_user_tables()

Description: Aggregates status information about user-defined ordinary tables in all namespaces. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_stat_user_tables()

Description: Collects status information about user-defined ordinary tables in all namespaces. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_user_indexes()

Description: Aggregates status information about the indexes of user-defined ordinary tables in all databases. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_stat_user_indexes()

Description: Collects status information about the indexes of user-defined ordinary tables in all databases. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_database()

Description: Aggregates statistics on databases on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_database_conflicts()

Description: Collects statistics on databases on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_xact_all_tables()

Description: Aggregates transaction status information about all ordinary tables and TOAST tables in namespaces. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_stat_xact_all_tables()

Description: Collects transaction status information about all ordinary tables and TOAST tables in the namespace. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_xact_sys_tables()

Description: Aggregates transaction status information about system catalogs in namespaces on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_stat_xact_sys_tables()

Description: Collects transaction status information about system catalogs in namespaces on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_xact_user_tables()

Description: Aggregates transaction status information about user tables in namespaces on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_stat_xact_user_tables()

Description: Collects transaction status information about user tables in namespaces on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_user_functions()

Description: Aggregates transaction status information about user-defined functions in namespaces on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_xact_user_functions()

Description: Collects transaction status information about user-defined functions in namespaces on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_stat_bad_block()

Description: Aggregates information about the failure to read files such as tables and indexes on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_file_redo_iostat()

Description: Collects information about the failure to read files such as tables and indexes on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_file_iostat()

Description: Collects I/O statistics of data files on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_locks()

Description: Aggregates lock information on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_replication_slots()

Description: Aggregates logical replication information on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.GET_GLOBAL_PARALLEL_DECODE_STATUS()

Description: Displays the parallel decoding information of replication slots on all primary DNs in a cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function. This function can be executed only on CNs. An error is reported when it is executed on DNs. The returned value is the same as that of the view in GLOBAL_PARALLEL_DECODE_STATUS.

Return type: record

DBE_PERF.GET_GLOBAL_PARALLEL_DECODE_THREAD_INFO()

Description: Displays the parallel decoding thread information of replication slots on all primary DNs in a cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function. This function can be executed only on CNs. An error is reported when it is executed on DNs. The returned value is the same as that of the view in GLOBAL_PARALLEL_DECODE_THREAD_INFO.

Return type: record

DBE_PERF.get_global_bgwriter_stat()

Description: Aggregates statistics on the backend write thread activities on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_replication_stat()

Description: Aggregates status information about log synchronization on all nodes, such as the location where the sender sends logs and the location where the receiver receives logs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_pooler_status()

Description: Aggregates cache connection status in the pooler on all CNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_transactions_running_xacts()

Description: Aggregates information about running transactions on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_transactions_running_xacts()

Description: Collects information about running transactions on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_transactions_prepared_xacts()

Description: Aggregates information about transactions that are currently prepared for two-phase commit on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_transactions_prepared_xacts()

Description: Collects information about transactions that are currently prepared for two-phase commit on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_statement()

Description: Aggregates the status of historical statements executed on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function. For details about the columns returned by the function, see SUMMARY_STATEMENT.

Return type: record

DBE_PERF.get_global_statement_count()

Description: Aggregates SELECT, UPDATE, INSERT, DELETE, and response time information (TOTAL, AVG, MIN, and MAX) on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_config_settings()

Description: Aggregates GUC parameter settings on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_wait_events()

Description: Aggregates status information about the wait events on each node. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_statement_responsetime_percentile()

Description: Obtains the distribution information about the response time of 80% and 95% SQL statements in the cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_summary_user_login()

Description: Collects statistics on the number of user login and logout times on each node in the cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.get_global_record_reset_time()

Description: Aggregates statistics on reset (restart, primary-standby switchover, and database deletion) time in the cluster. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.standby_statement_history(only_slow[, time1, time2])

Description: Queries full SQL statements on the standby node. The primary node queries full SQL statements using the statement_history table, while the standby node queries using this function. To query this function, you must have the MONADMIN permission. For details about the columns returned by the function, see STATEMENT_HISTORY.

Parameters: See Table 9 standby_statement_history parameters.

Return type: record

Table 9 standby_statement_history parameters

Parameter

Type

Description

only_slow

Boolean

Specifies whether to query only slow SQL statements.
  • true indicates yes, which is equivalent to SELECT ... WHERE is_slow_sql = true;.
  • false or NULL indicates that all SQL statements are queried, that is, is_slow_sql is not used as a filter condition.

time1

timestamptz

Minimum time specified by finish_time for querying SQL statements. This parameter is optional.

time2

timestamptz

Maximum time specified by finish_time for querying SQL statements. This parameter is optional. An error is reported during function execution if time1 is greater than or equal to time2.

  • The two time parameters time1 and time2 indicate the time segment to which finish_time of the queried SQL statement belongs. They indicate the start time and end time respectively. If NULL or no value is entered, there is no limit. The function of time1 and time2 is the same as that of SELECT ... WHERE finish_time BETWEEN time1 AND time2;.
  • The data generated from this function on the standby node is not stored in a table, and there is no index on the start_time column. You are advised to use the parameter to search for finish_time.
  • Full/Slow SQL statements on the standby node are stored asynchronously. Therefore, the storage of user SQL information may be delayed. You are advised to query this API to expand the query time range.

DBE_PERF.global_io_wait_info()

Description: Queries real-time I/O control statistics on all CNs and DNs. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

pg_stat_get_mem_mbytes_reserved(tid)

Description: Collects statistics on variables related to resource management, which is used only for fault locating.

Parameter: thread ID

Return type: text

pg_stat_get_file_stat()

Description: Collects statistics on data file I/Os to indicate I/O performance and detect performance problems such as abnormal I/O operations.

Return type: record

pg_stat_get_redo_stat()

Description: Displays statistics on the replay of session thread logs.

Return type: record

pg_stat_get_status(int8)

Description: Tests the blocking status about the backend thread and auxiliary thread of the current instance.

Return type: record

get_local_rel_iostat()

Description: Queries the accumulated I/O status of data files on the current node.

Return type: record

DBE_PERF.get_global_rel_iostat()

Description: Collects I/O statistics of data files on all nodes. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

pg_catalog.plancache_status()

Description: Displays status information about the global plan cache on the current node. The information returned by the function is the same as that in GLOBAL_PLANCACHE_STATUS.

Return type: record

DBE_PERF.global_plancache_status()

Description: Displays status information about the global plan cache on all nodes. For details about the information returned by the function, see GLOBAL_PLANCACHE_STATUS. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

DBE_PERF.global_threadpool_status()

Description: Displays the status of worker threads and sessions in thread pools on all nodes. For details about the information returned by the function, see 18.7.14-Table GLOBAL_THREADPOOL_STATUS. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Return type: record

comm_check_connection_status()

Description: Returns the connection status between the CN and all active nodes (CNs and primary DNs). This function can be queried only on CNs and can be used by common users.

Parameter: nan

Return type: node_name text, remote_name text, remote_host text, remote_port integer, is_connected Boolean, and no_error_occur Boolean

DBE_PERF.global_comm_check_connection_status()

Description: Returns the connection status between all CNs and all active nodes (CNs and primary DNs). This function can be queried only on CNs. Permission control is inherited from the DBE_PERF schema. After a cluster is created, by default, you must have the MONADMIN permission to query this function.

Parameter: nan

Return type: node_name text, remote_name text, remote_host text, remote_port integer, is_connected Boolean, and no_error_occur Boolean

remote_candidate_stat()

Description: Displays the number of pages in the candidate buffer chain of this instance and buffer elimination information, including the normal buffer pool and segment buffer pool.

Return type: record

Table 10 remote_candidate_stat parameter description

Name

Type

Description

node_name

text

Node name.

candidate_slots

integer

Number of pages in the candidate buffer chain of the current normal buffer pool.

get_buf_from_list

bigint

Number of times that pages are obtained from the candidate buffer chain during buffer eviction in the current normal buffer pool.

get_buf_clock_sweep

bigint

Number of times that pages are obtained from the original eviction solution during buffer eviction in the current normal buffer pool.

seg_candidate_slots

integer

Number of pages in the candidate buffer chain of the current segment buffer pool.

seg_get_buf_from_list

bigint

Number of times that pages are obtained from the candidate buffer chain during buffer eviction in the current segment buffer pool.

seg_get_buf_clock_sweep

bigint

Number of times that pages are obtained from the original eviction solution during buffer eviction in the current segment buffer pool.

remote_ckpt_stat()

Description: Displays the checkpoint information and log flushing information about all instances in the cluster (unavailable on DNs, except for the current node).

Return type: record

Table 11 remote_ckpt_stat parameter description

Parameter

Type

Description

node_name

text

Instance name.

ckpt_redo_point

text

Checkpoint of the current instance.

ckpt_clog_flush_num

int8

Number of Clog flushing pages from the startup time to the current time.

ckpt_csnlog_flush_num

int8

Number of CSN log flushing pages from the startup time to the current time.

ckpt_multixact_flush_num

int8

Number of MultiXact flushing pages from the startup time to the current time.

ckpt_predicate_flush_num

int8

Number of predicate flushing pages from the startup time to the current time.

ckpt_twophase_flush_num

int8

Number of two-phase flushing pages from the startup time to the current time.

remote_double_write_stat()

Description: Displays doublewrite file status of all instances in the cluster (unavailable on DNs, except for the current node).

Return type: record

Table 12 remote_double_write_stat parameter description

Parameter

Type

Description

node_name

text

Instance name.

curr_dwn

int8

Sequence number of the doublewrite file.

curr_start_page

int8

Start page for restoring the doublewrite file.

file_trunc_num

int8

Number of times that the doublewrite file is reused.

file_reset_num

int8

Number of reset times after the doublewrite file is full.

total_writes

int8

Total number of I/Os of the doublewrite file.

low_threshold_writes

int8

Number of I/Os for writing doublewrite files with low efficiency (the number of I/O flushing pages at a time is less than 16).

high_threshold_writes

int8

Number of I/Os for writing doublewrite files with high efficiency (the number of I/O flushing pages at a time is more than 421).

total_pages

int8

Total number of pages that are flushed to the doublewrite file area.

low_threshold_pages

int8

Number of pages that are flushed with low efficiency.

high_threshold_pages

int8

Number of pages that are flushed with high efficiency.

file_id

int8

ID of the current doublewrite file.

remote_single_flush_dw_stat()

Description: Displays the single-page doublewrite file eviction status of all instances in the cluster (unavailable on DNs, except for the current node).

Return type: record

Table 13 remote_single_flush_dw_stat parameter description

Parameter

Type

Description

node_name

text

Instance name.

curr_dwn

integer

Sequence number of the doublewrite file.

curr_start_page

integer

Start position of the current doublewrite file.

total_writes

bigint

Total number of data write pages in the current doublewrite file.

file_trunc_num

bigint

Number of times that the doublewrite file is reused.

file_reset_num

bigint

Number of reset times after the doublewrite file is full.

remote_pagewriter_stat()

Description: Displays the page flushing information and checkpoint information about all instances in the cluster (unavailable on DNs, except for the current node).

Return type: record

Table 14 remote_pagewriter_stat parameter description

Parameter

Type

Description

node_name

text

Instance name.

pgwr_actual_flush_total_num

int8

Total number of dirty pages flushed from the startup time to the current time.

pgwr_last_flush_num

int4

Number of dirty pages flushed in the previous batch.

remain_dirty_page_num

int8

Estimated number of dirty pages that are not flushed.

queue_head_page_rec_lsn

text

recovery_lsn of the first dirty page in the dirty page queue of the current instance.

queue_rec_lsn

text

recovery_lsn of the dirty page queue of the current instance.

current_xlog_insert_lsn

text

Write position of Xlogs in the current instance.

ckpt_redo_point

text

Checkpoint of the current instance.

remote_recovery_status()

Description: Displays log flow control information about the primary and standby nodes (except the current node and DNs).

Return type: record

Table 15 remote_recovery_status parameter description

Parameter

Type

Description

node_name

text

Node name (including the primary and standby nodes).

standby_node_name

text

Name of the standby node.

source_ip

text

IP address of the primary node.

source_port

int4

Port number of the primary node.

dest_ip

text

IP address of the standby node.

dest_port

int4

Port number of the standby node.

current_rto

int8

Current log flow control time of the standby node (unit: s).

target_rto

int8

Expected flow control time of the standby node specified by the corresponding GUC parameter (unit: s).

current_sleep_time

int8

Sleep time required to achieve the expected flow control time (unit: μs).

remote_rto_stat()

Description: Displays log flow control information about the primary and standby nodes (except the current node and DNs).

Return type: record

Table 16 remote_rto_stat parameters

Parameter

Type

Description

node_name

text

Node name (including the primary and standby nodes).

rto_info

text

Flow control information, including the current log flow control time (unit: second) of the standby node, the expected flow control time (unit: second) specified by the GUC parameter, and the primary node sleep time (unit: μs) required to reach the expectation.

remote_redo_stat()

Description: Displays the log replay status of all instances in the cluster (unavailable on DNs, except for the current node).

Return type: record

Table 17 remote_redo_stat parameter description

Parameter

Type

Description

node_name

text

Instance name.

redo_start_ptr

int8

Start point for replaying the instance logs.

redo_start_time

int8

Start time (UTC) when the instance logs are replayed.

redo_done_time

int8

End time (UTC) when the instance logs are replayed.

curr_time

int8

Current time (UTC) of the instance.

min_recovery_point

int8

Position of the minimum barrier for the instance logs.

read_ptr

int8

Position for reading the instance logs.

last_replayed_read_ptr

int8

Position for replaying the instance logs.

recovery_done_ptr

int8

Replay position after the instance is started.

read_xlog_io_counter

int8

Number of I/Os when the current instance reads and replays logs.

read_xlog_io_total_dur

int8

Total I/O latency when the current instance reads and replays logs.

read_data_io_counter

int8

Number of data page I/O reads during replay in the current instance.

read_data_io_total_dur

int8

Total I/O latency of data page reads during replay in the current instance.

write_data_io_counter

int8

Number of data page I/O writes during replay in the current instance.

write_data_io_total_dur

int8

Total I/O latency of data page writes during replay in the current instance.

process_pending_counter

int8

Number of synchronization times of log distribution threads during replay in the instance.

process_pending_total_dur

int8

Total synchronization latency of log distribution threads during replay in the instance.

apply_counter

int8

Number of synchronization times of redo threads during redo in the current instance

apply_total_dur

int8

Total synchronization latency of redo threads during redo in the current instance

speed

int8

Log replay rate of the current instance.

local_max_ptr

int8

Maximum number of replay logs received by the localhost after the instance is started.

primary_flush_ptr

int8

Location where host log files are written to disk.

worker_info

text

Redo thread information of the instance. If concurrent redo is not enabled, the value is NULL.

pgxc_gtm_snapshot_status()

Description: Queries for transaction information on the current GTM. This function is supported only in GTM mode, and is not supported in GTM-LITE or GTM-FREE mode.

Return type: record

The following table describes return parameters.
Table 18 PGXC_GTM_SNAPSHOT_STATUS return parameters

Name

Type

Description

xmin

xid

Minimum XID of the running transactions.

xmax

xid

XID of the transaction next to the executed transaction with the maximum XID.

csn

integer

Specifies the sequence number of the transaction to be committed.

oldestxmin

xid

Minimum XID of the executed transactions.

xcnt

integer

Number of the running transactions.

running_xids

text

XID of the running transaction.

pv_os_run_info()

Description: Displays the running status of the current OS. For details about the columns, see PV_OS_RUN_INFO.

Parameter: nan

Return type: SETOF record

pv_session_stat()

Description: Collects session status information by session thread or AutoVacuum thread. For details about the columns, see PV_SESSION_STAT.

Parameter: nan

Return type: SETOF record

pv_session_time()

Description: Collects statistics on the running time of session threads and the time consumed in each execution phase. For details about the columns, see PV_SESSION_TIME.

Parameter: nan

Return type: SETOF record

pg_stat_get_db_temp_bytes()

Description: Collects statistics on the total amount of data written to temporary files through database query. All temporary files are counted regardless of their creation reason and are not affected by the log_temp_files setting.

Parameter: oid

Return type: bigint

pg_stat_get_db_temp_files()

Description: Queries the number of temporary files created in the database. All temporary files are counted regardless of their creation reason (such as sorting or hashing) and are not affected by the log_temp_files setting.

Parameter: oid

Return type: bigint

gs_prepared_statements()

Description: Displays prepared statements that are available in all sessions. Only users with the SYSADMIN permission can execute this function. The fields in the information returned by the function are the same as those in GS_ALL_PREPARED_STATEMENTS.

Return type: record

local_redo_time_count()

Description: Returns the time consumption statistics on each process of each replayer thread on the current node (valid data exists only on the standby node).

The return values are as follows.
Table 19 local_redo_time_count return parameters

Column

Description

thread_name

Thread name.

step1_total

Total duration of step 1. The process of each thread is as follows:

  • Ultimate RTO:

    redo batch: obtains a log from a queue.

    redo manager: obtains a log from a queue.

    redo worker: obtains a log from a queue.

    trxn manager: reads a log from a queue.

    trxn worker: reads a log from a queue.

    read worker: reads an Xlog page (overall) from a file.

    read page worker: obtains a log from a queue.

    startup: obtains a log from a queue.

  • Parallel replay:

    page redo: obtains a log from a queue.

    startup: reads a log.

step1_count

Number of accumulated execution times of step 1.

step2_total

Total duration of step 2. The process of each thread is as follows:

  • Ultimate RTO:

    redo batch: processes logs (overall).

    redo manager: processes logs (overall).

    redo worker: processes logs (overall).

    trxn manager: processes logs (overall).

    trxn worker: processes logs (overall).

    read worker: specifies the time required for reading the Xlog page.

    read page worker: generates and sends LSN forwarders.

    startup: checks whether to replay to the specified position.

  • Parallel replay:

    startup: checks whether to replay to the specified position.

step2_count

Number of accumulated execution times of step 2.

step3_total

Total duration of step 3. The process of each thread is as follows:

  • Ultimate RTO:

    redo batch: updates the standby state.

    redo manager: processes data logs.

    redo worker: replays page logs (overall).

    trxn manager: updates the flushing LSN.

    trxn worker: replays logs.

    read worker: updates the Xlog segment.

    read page worker: obtains a new item.

    startup: collects statistics on the wait time of delayed replay feature.

  • Parallel replay:

    page redo: updates the standby state.

    startup: collects statistics on the wait time of delayed replay feature.

step3_count

Number of accumulated execution times of step 3.

step4_total

Total duration of step 4. The process of each thread is as follows:

  • Ultimate RTO:

    redo batch: parses Xlogs.

    redo manager: processes DDL operations.

    redo worker: reads data pages.

    trxn manager: synchronizes the wait time.

    trxn worker: updates the LSN of the current thread.

    read page worker: stores logs in the distribution thread.

    startup: distributes logs (overall).

  • Parallel replay:

    page redo: replays undo logs.

    startup: distributes logs (overall).

step4_count

Number of accumulated execution times of step 4.

step5_total

Total duration of step 5. The process of each thread is as follows:

  • Ultimate RTO:

    redo batch: distributes to the redo manager.

    redo manager: distributes logs to redo workers.

    redo worker: replays data page logs.

    trxn manager: distributes data to the trxn worker.

    trxn worker: forcibly synchronizes the wait time.

    read page worker: updates the LSN of the current thread.

    startup: decodes logs.

  • Parallel replay:

    page redo: replays sharetrxn logs.

    startup: replays logs.

step5_count

Number of accumulated execution times of step 5.

step6_total

Total duration of step 6. The process of each thread is as follows:

  • Ultimate RTO:

    redo worker: replays non-data page logs.

    trxn manager: updates global LSNs.

    redo manager: stores data page logs to the hash table.

  • Parallel replay:

    page redo: replays synctrxn logs.

    startup: forcibly synchronizes the wait time.

step6_count

Number of accumulated execution times of step 6.

step7_total

Total duration of step 7. The process of each thread is as follows:

  • Ultimate RTO:

    redo manager: creates tablespaces.

    redo worker: updates FSM.

  • Parallel replay:

    page redo: replays a single log.

step7_count

Number of accumulated execution times of step 7.

step8_total

Total duration of step 8. The process of each thread is as follows:

  • Ultimate RTO:

    redo worker: forcibly synchronizes the wait time.

  • Parallel replay:

    page redo: replays all workers do logs.

step8_count

Number of accumulated execution times of step 8.

step9_total

Total duration of step 9. The process of each thread is as follows:

  • Ultimate RTO:

    redo manager: distributes logs to the page redo thread.

  • Parallel replay:

    page redo: replays multi-worker do logs.

step9_count

Number of accumulated execution times of step 9.

local_xlog_redo_statics()

Description: Returns the statistics on each type of logs that have been replayed on the current node (valid data exists only on the standby node).

The return values are as follows.
Table 20 local_xlog_redo_statics parameters

Column

Description

xlog_type

Log types.

rmid

Resource manager ID.

info

Xlog operation.

num

Number of logs.

extra

Valid values are available for page replay logs and xact logs.
  • Number of pages read from the disk if the log is of the page type.
  • Number of deleted files if the log is of the xact type.

remote_bgwriter_stat()

Description: Displays information about pages flushed by the bgwriter threads of all instances in the cluster, number of pages in the candidate buffer chain, and buffer eviction information (not available on the DN, except for the current node).

Return type: record

Table 21 remote_bgwriter_stat parameters

Parameter

Type

Description

node_name

text

Instance name.

bgwr_actual_flush_total_num

bigint

Total number of dirty pages flushed by the bgwriter thread from the startup time to the current time.

bgwr_last_flush_num

integer

Number of dirty pages flushed by the bgwriter thread in the previous batch.

candidate_slots

integer

Number of pages in the current candidate buffer chain.

get_buffer_from_list

bigint

Number of times that pages are obtained from the candidate buffer chain during buffer eviction.

get_buf_clock_sweep

bigint

Number of times that pages are obtained from the original eviction solution during buffer eviction.

Example:

The remote_bgwriter_stat function is used to query the page refreshing information of the bgwriter thread.

1
2
3
4
5
6
7
gaussdb=#SELECT * FROM remote_bgwriter_stat();
 node_name | bgwr_actual_flush_total_num | bgwr_last_flush_num | candidate_slots | get_buffer_from_list | get_buf_clock_sweep
-----------+-----------------------------+---------------------+-----------------+----------------------+---------------------
 datanode3 |                           0 |                   0 |          266232 |                  404 |                   0
 datanode2 |                           0 |                   0 |          266232 |                  424 |                   0
 datanode1 |                           0 |                   0 |          266232 |                  393 |                   0
(3 rows)

gs_stack()

Description: Displays the call stack of a thread. To query this function, you must have the SYSADMIN or MONADMIN permission.

Parameter: tid, which indicates the thread ID. tid is an optional parameter. If it is specified, the function returns the call stack of the thread corresponding to tid. If it is not specified, the function returns the call stacks of all threads.

Return value: If tid is specified, the return value is of the TEXT type. If tid is not specified, the return value is a SETOF record.

Example:

Obtain the call stack of a specified thread.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
gaussdb=#SELECT * FROM gs_stack(139663481165568);
                              gs_stack
--------------------------------------------------------------------
 __poll + 0x2d                                                     +
 WaitLatchOrSocket(Latch volatile*, int, int, long) + 0x29f        +
 WaitLatch(Latch volatile*, int, long) + 0x2e                      +
 JobScheduleMain() + 0x90f                                         +
 int GaussDbThreadMain<(knl_thread_role)9>(knl_thread_arg*) + 0x456+
 InternalThreadFunc(void*) + 0x2d                                  +
 ThreadStarterFunc(void*) + 0xa4                                   +
 start_thread + 0xc5                                               +
 clone + 0x6d                                                      +
(1 row)
Obtain the call stacks of all threads.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
gaussdb=#SELECT * FROM gs_stack();
-[ RECORD 1 ]-------------------------------------------------------------------------------------------------------
tid   | 139670364324352
lwtid | 308
stack | __poll + 0x2d
      | CommWaitPollParam::caller(int (*)(pollfd*, unsigned long, int), unsigned long) + 0x34
      | int comm_socket_call<CommWaitPollParam, int (*)(pollfd*, unsigned long, int)>(CommWaitPollParam*, int (*)(pollfd*, unsigned long
, int)) + 0x28
      | comm_poll(pollfd*, unsigned long, int) + 0xb1
      | ServerLoop() + 0x72b
      | PostmasterMain(int, char**) + 0x314e
      | main + 0x617
      | __libc_start_main + 0xf5
      | 0x55d38f8db3a7
[ RECORD 2 ]-------------------------------------------------------------------------------------------------------
tid   | 139664851859200
lwtid | 520
stack | __poll + 0x2d
      | WaitLatchOrSocket(Latch volatile*, int, int, long) + 0x29f
      | SysLoggerMain(int) + 0xc86
      | int GaussDbThreadMain<(knl_thread_role)17>(knl_thread_arg*) + 0x45d
      | InternalThreadFunc(void*) + 0x2d
      | ThreadStarterFunc(void*) + 0xa4
      | start_thread + 0xc5
      | clone + 0x6d

gs_perf_start(duration integer[, freq integer])

Description: Collects the stack call data of the on-CPU flame graph of each thread on the current node. The function returns the storage path of the flame graph. To query this function, you must have the SYSADMIN or MONADMIN permission.

The parameters are described as follows.

Parameter

Description

Type

Range

duration

Stack collection duration, in seconds. If a floating-point number is entered, the first digit after the decimal point is rounded off.

integer

1–60

freq

(Optional) Stack collection frequency, in Hz. The default value is 100. If a floating-point number is entered, the first digit after the decimal point is rounded off.

integer

10–1000

Return type: text

Example:

Set the frequency to 100 Hz and collect on-CPU stack information for 10s.
1
2
3
4
5
6
7
8
gaussdb=# SELECT gs_perf_start(10,100);
                                   gs_perf_start                                    
------------------------------------------------------------------------------------
 Successfully collected perf flamegraph data, the result filepaths are :           +
 $GAUSSLOG/gs_flamegraph/cn_5001/flamegraph-manual-oncpu-2025-03-03_104812.html.gz;+
 Record 886 cpu clock samples.                                                     +

(1 row)

Before executing this function and the following gs_perf_start_offcpu(), gs_perf_start_all(), and gs_perf_start_detail() functions, ensure that gs_perf_service is running properly. During data collection, gs_perf_service needs to apply for a ring buffer. The buffer size is controlled by /proc/sys/kernel/perf_event_mlock_kb in the OS. If the error message "perf mmap failed" is displayed during the collection, adjust the size of /proc/sys/kernel/perf_event_mlock_kb and perform the collection again.

gs_perf_start_offcpu(duration integer)

Description: Collects the stack call data of the off-CPU flame graph of each thread on the current node. The function returns the storage path of the flame graph. To query this function, you must have the SYSADMIN or MONADMIN permission.

The parameters are described as follows.

Parameter

Description

Type

Range

duration

Stack collection duration, in milliseconds. If a floating-point number is entered, the first digit after the decimal point is rounded off.

integer

50~3000

Return type: text

Example:

Collect off-CPU stack information for 2000 ms.
1
2
3
4
5
6
7
8
gaussdb=# SELECT gs_perf_start_offcpu(2000);
                                gs_perf_start_offcpu                                 
-------------------------------------------------------------------------------------
 Successfully collected perf flamegraph data, the result filepaths are :            +
 $GAUSSLOG/gs_flamegraph/cn_5001/flamegraph-manual-offcpu-2025-03-03_104918.html.gz;+
 Record 48 sched switch samples.                                                    +

(1 row)

gs_perf_start_detail(duration integer[, freq integer])

Description: Collects the on-CPU and off-CPU call stack details of all threads on all CPU cores on the host where the current node is located. The function returns the address of the compressed file of multi-core and multi-thread raw data. Each time this command is executed, the historical multi-core and multi-thread data is deleted. To query this function, you must have the SYSADMIN or MONADMIN permission.

The parameters are described as follows.

Parameter

Description

Type

Range

duration

Stack collection duration, in milliseconds. If a floating-point number is entered, the first digit after the decimal point is rounded off.

integer

50~3000

freq

(Optional) Stack collection frequency, in Hz. The default value is 100. If a floating-point number is entered, the first digit after the decimal point is rounded off.

integer

10–1000

Return type: text

Example:

Collect multi-core and multi-thread flame graph data for 2000 ms.
1
2
3
4
5
6
7
8
9
gaussdb=# SELECT gs_perf_start_detail(2000);
                                       gs_perf_start_detail                                        
---------------------------------------------------------------------------------------------------
 Successfully collected perf detail data, the result filepath is :                                +
 $GAUSSLOG/gs_flamegraph/cn_5001/detail-2025-03-03_105043.lz4                                     +
 Please save the file locally, otherwise the file will be deleted during the next data collection.+
 Record 1735211 samples.                                                                          +
 
(1 row)

gs_perf_start_all(duration integer[, freq integer])

Description: Collects the stack call data of the on-CPU and off-CPU flame graphs on all nodes of the host where the current node is located. The function returns the storage path of the flame graph files generated on all nodes. To query this function, you must have the SYSADMIN or MONADMIN permission.

The parameters are described as follows.

Parameter

Description

Type

Range

duration

Stack collection duration, in milliseconds. If a floating-point number is entered, the first digit after the decimal point is rounded off.

integer

50~3000

freq

(Optional) Stack collection frequency, in Hz. The default value is 100. If a floating-point number is entered, the first digit after the decimal point is rounded off.

integer

10–1000

Return type: text

Example:

Set the frequency to 100 Hz and collect the on-CPU and off-CPU flame graph data on all nodes of the host where the current node is located for 1000 ms.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
gaussdb=# SELECT gs_perf_start_all(1000,100);
                                            gs_perf_start_all                                            
---------------------------------------------------------------------------------------------------------
 Successfully collected perf flamegraph data, the result filepaths are :                                +
 $GAUSSLOG/gs_flamegraph/{nodename}/flamegraph-manual-oncpu-2025-03-03_105122.html.gz;                  +
 $GAUSSLOG/gs_flamegraph/{nodename}/flamegraph-manual-offcpu-2025-03-03_105122.html.gz;                 +
 Please visit gs_flamegraph directory(all nodes of current machine) to get results for individual nodes.+
 Record 664 cpu clock samples.                                                                          +
 Record 370 sched switch samples.                                                                       +

(1 row)

gs_perf_list()

Description: Views the collected on-CPU and off-CPU flame graph data saved on the current node. The multi-core and multi-thread flame graph records are not displayed.

Parameter: nan

Return type: SETOF record

The following table describes the fields returned by the function.

Name

Type

Description

nodename

text

Name of a collection node.

filename

text

Name of the file that stores the collected data.

collect_type

text

Collection type.

Example:

Query the flame graph generation records saved on the current node.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
gaussdb=# SELECT * FROM gs_perf_list() limit 10;
 nodename |                        filename                        | collect_type 
----------+--------------------------------------------------------+--------------
 cn_5001  | flamegraph-auto-offcpu-2025-03-02_175022.html.gz       | auto
 cn_5001  | flamegraph-auto-offcpu-2025-03-03_063522.html.gz       | auto
 cn_5001  | flamegraph-auto-offcpu-2025-03-03_102523.html.gz       | auto
 cn_5001  | flamegraph-auto-offcpu-2025-03-02_173523.html.gz       | auto
 cn_5001  | flamegraph-manual-offcpu-2025-03-03_025410.html.gz     | manual
 cn_5001  | flamegraph-manual-oncpu-2025-03-03_003428.html.gz      | manual
 cn_5001  | flamegraph-manual-oncpu-2025-03-02_181653.html.gz      | manual
 cn_5001  | flamegraph-manual-oncpu-2025-03-03_031815.html.gz      | manual
 cn_5001  | flamegraph-manual-oncpu-2025-03-03_001013.html.gz      | manual
(9 rows)

gs_perf_query([filename text])

Description: Queries the historical on-CPU and off-CPU flame graph stack call data. The function collects the function call stacks of each thread, sums up the function running time, and returns the collection result. To query this function, you must have the SYSADMIN or MONADMIN permission.

The parameters are described as follows.

Parameter

Description

Type

filename

Name of a historically collected file. This parameter is optional. The default value is the latest manually collected flame graph.

text

Return type: SETOF record

The following table describes the fields returned by the function.

Name

Type

Description

backtrace

text

Stack name (in a tree structure).

period

bigint

Execution time of a stack.

level

integer

Level of the stack call tree where a stack is located.

sequence

integer

Sequence in the stack call tree after sorting.

thread_name

text

Name of the thread where a stack is located.

overhead

float

Percentage of the stack execution time.

Example:

Query the collected stack information.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
gaussdb=# SELECT * FROM gs_perf_query() WHERE overhead > 2 AND level < 10;
                                   backtrace                                   |   period    | level | sequence |  thread_name  | overhead
-------------------------------------------------------------------------------+-------------+-------+----------+---------------+----------
 root                                                                         +| 74140000000 |     0 |        1 | root          |      100
                                                                               |             |       |          |               |
     worker                                                                   +| 69930000000 |     1 |        2 | worker        |    94.32
                                                                               |             |       |          |               |
     |── start_thread                                                       +| 67620000000 |     2 |        3 | worker        |    91.21
                                                                               |             |       |          |               |
     |   └── ThreadStarterFunc                                             +| 67620000000 |     3 |        4 | worker        |    91.21
                                                                               |             |       |          |               |
     |       └── internal_thread_func                                      +| 67620000000 |     4 |        5 | worker        |    91.21
                                                                               |             |       |          |               |
     |           └── int gauss_db_thread_main                              +| 67620000000 |     5 |        6 | worker        |    91.21
                                                                               |             |       |          |               |
      |               └── backend_run                                      +| 67620000000 |     6 |        7 | worker        |    91.21
                                                                               |             |       |          |               |
     |                   |── PostgresMain                                   +| 67520000000 |     7 |        8 | worker        |    91.07
                                                                               |             |       |          |               |
     |                   |   |── exec_simple_query                          +| 64800000000 |     8 |        9 | worker        |     87.4
                                                                               |             |       |          |               |
     |                   |   |   |── OpFusion::opfusion_process             +| 30130000000 |     9 |       10 | worker        |    40.64
                                                                               |             |       |          |               |
     |                   |   |   |── pg_analyze_and_rewrite                 +| 11290000000 |     9 |     1405 | worker        |    15.23
                                                                               |             |       |          |               |
     |                   |   |   |── pg_plan_queries                        +|  9550000000 |     9 |     2660 | worker        |    12.88
                                                                               |             |       |          |               |
     |                   |   |   |── PortalRun                              +|  4680000000 |     9 |     4310 | worker        |     6.31
                                                                               |             |       |          |               |
     |                   |   |   |── finish_xact_command                    +|  3120000000 |     9 |     4923 | worker        |     4.21
                                                                               |             |       |          |               |
     |                   |   |   |── pg_parse_query                         +|  1520000000 |     9 |     5262 | worker        |     2.05
                                                                               |             |       |          |               |
     |                   |   |   |── OpFusion::opfusion_factory             +|  1500000000 |     9 |     5374 | worker        |     2.02
                                                                               |             |       |          |               |
     txnsnapworker                                                            +|  1640000000 |     1 |     6770 | txnsnapworker |     2.21
                                                                               |             |       |          |               |
     |── start_thread                                                       +|  1620000000 |     2 |     6771 | txnsnapworker |     2.19
                                                                               |             |       |          |               |
     |   └── ThreadStarterFunc                                             +|  1620000000 |     3 |     6772 | txnsnapworker |     2.19
                                                                               |             |       |          |               |
     |       └── internal_thread_func                                      +|  1620000000 |     4 |     6773 | txnsnapworker |     2.19
                                                                               |             |       |          |               |
     |           └── int gauss_db_thread_main                              +|  1620000000 |     5 |     6774 | txnsnapworker |     2.19
                                                                               |             |       |          |               |
     |               └── txn_snap_cap_worker_main                          +|  1620000000 |     6 |     6775 | txnsnapworker |     2.19
                                                                               |             |       |          |               |
     |                   └── PostgresInitializer::InitTxnSnapWorker        +|  1620000000 |     7 |     6776 | txnsnapworker |     2.19
                                                                               |             |       |          |               |
     |                       |── PostgresInitializer::SetDatabase           +|  1600000000 |     8 |     6777 | txnsnapworker |     2.16
                                                                               |             |       |          |               |
     |                       |   └── PostgresInitializer::SetDatabaseByName+|  1600000000 |     9 |     6778 | txnsnapworker |     2.16

gs_perf_query_general([filename text])

Description: Queries the percentage of functions called by stacks in the historical on-CPU and off-CPU flame graphs. The sum of the percentages may not be 1 due to calculation precision. To query this function, you must have the SYSADMIN or MONADMIN permission.

The parameters are described as follows.

Parameter

Description

Type

filename

Name of a historically collected file. This parameter is optional. The default value is the latest manually collected flame graph.

text

Return type: SETOF record

The following table describes the fields returned by the function.

Name

Type

Description

function_name

text

Stack function name.

percentage

float

Percentage of stack function calls.

Example:

Query the percentage of flame graph function calls generated in the latest manual collection.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
gaussdb=# SELECT * FROM gs_perf_query_general();
         function_name         | percentage
-------------------------------+------------
 pthread_mutex_lock            |      28.57
 do_select                     |       7.17
 undopage::init_undo_zone_lock |       7.14
 unknown                       |       7.14
 undo::recycle_main            |       7.14
 undo::is_valid_zone_id        |       7.14
 __vdso_gettimeofday           |       7.14
 hrtimer_start_range_ns        |       7.14
 undo::get_zone_id             |       7.14
 __pthread_mutex_unlock        |       7.14
 gs_stat_encap_status_info     |       7.14
(11 rows)

gs_perf_query_detail([filename text])

Description: Queries the stack function call percentage and call stack details of the historical on-CPU and off-CPU flame graphs. The sum of the percentages may not be 1 due to calculation precision. To query this function, you must have the SYSADMIN or MONADMIN permission.

The parameters are described as follows.

Parameter

Description

Type

filename

Name of a historically collected file. This parameter is optional. The default value is the latest manually collected flame graph.

text

Return type: SETOF record

The following table describes the fields returned by the function.

Name

Type

Description

function_name

text

Stack function name.

percentage

float

Percentage of stack function calls.

function_callstack

text

Stack function call stack.

function_callstack_percentage

float

Percentage of stack function call stacks.

Example:

Query the percentage and details of flame graph calls generated in the last manual collection.
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
testdb3=# SELECT * FROM gs_perf_query_detail();
      function_name       | percentage |                                                                                                                                                              function_callstack
                                                                                                                                                 | function_callstack_percentage
--------------------------+------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------------------------------------+-------------------------------
 pthread_mutex_lock       |         30 | TrackStmtWorker->unknown->internal_thread_func->int gauss_db_other_feature_thread_main->pthread_mutex_lock
                                                                                                                                                 |                            30
 stmt_flush_main          |         20 | TrackStmtWorker->unknown->internal_thread_func->int gauss_db_other_feature_thread_main->stmt_flush_main
                                                                                                                                                 |                            20
 finish_task_switch       |         20 | AntiRecycler->unknown->internal_thread_func->int gauss_db_storage_thread_main->anti_recycler_main->anti_tab_recycle_loop->__select ->[enter kernel]->system_call_fastpath->SyS_select->core_
sys_select->do_select->poll_schedule_timeout->schedule_hrtimeout_range->schedule_hrtimeout_range_clock->schedule->__schedule->finish_task_switch |                            10
 finish_task_switch       |         20 | vlogwriter->unknown->internal_thread_func->int gauss_db_storage_thread_main->verifylogwriter_main->__select ->[enter kernel]->system_call_fastpath->SyS_select->core_sys_select->do_select->
poll_schedule_timeout->schedule_hrtimeout_range->schedule_hrtimeout_range_clock->schedule->__schedule->finish_task_switch                        |                            10
 system_call_after_swapgs |         10 | WALwriter->semctl ->[enter kernel]->system_call_after_swapgs
                                                                                                                                                 |                            10
 lwlock_release           |         10 | AntiRecycler->unknown->internal_thread_func->int gauss_db_storage_thread_main->anti_recycler_main->anti_tab_recycle_loop->lwlock_release
                                                                                                                                                 |                            10
 __select                 |         10 | AntiRecycler->unknown->internal_thread_func->int gauss_db_storage_thread_main->anti_recycler_main->anti_tab_recycle_loop->__select
                                                                                                                                                 |                            10
(7 rows)

gs_tpworker_execstmt_stat()

Description: Displays the runtime information of a statement. If the SYSADMIN or MONADMIN user runs the statement, the information about all the statements that are being executed is displayed. Common users can query only the information about the SQL statements executed by themselves.

Return type: SETOF record

Name

Type

Description

db_oid

oid

OID of the database that the user session connects to in the backend.

db_name

name

Name of the database that the user session connects to in the backend.

threadpool_worker

varchar

NUMA group to which a thread belongs and thread ID. The format is numagroup_threadid.

thread_id

bigint

Thread ID.

session_id

bigint

Session ID.

query_id

bigint

ID of the SQL statement that is being executed.

query_text

text

Content of the SQL statement that is being executed.

unique_sql_id

bigint

Unique ID generated by the SQL statement.

client_hostname

text

Host name of the connected client, obtained by a reverse DNS lookup based on client_addr. This column will be non-null only for IP connections and only when log_hostname is enabled.

client_app_name

text

Name of the client app.

stmt_slow_time_threshold

int

Preset timeout interval for marking an SQL statement as a slow SQL statement, in milliseconds.

stmt_start_time

timestamp with time zone

Time when the statement starts to be executed for a stored procedure, function, or package, the first query time is queried and does not change with the running of statements in the stored procedure.

stmt_elapse_time

int

Time elapsed since the query starts.

stmt_control_status

varchar

Current statement state.
  • Waiting: The session access is successful but it is not executed by the thread.
  • Running: The current statement is executed properly.
  • Control: The current statement enters the resource control phase.

stmt_control_rule

text

Slow SQL control rule corresponding to the current language.

stmt_control_iostat

text

IOPS value and maximum IOPS of the current statement. The format is curVal/maxVal.

stmt_control_memstat

text

This field is reserved and is not supported currently.

stmt_control_cpustat

text

This field is reserved and is not supported currently.

stmt_control_netstat

text

This field is reserved and is not supported currently.

gs_tpworker_execslot_stat()

Description: Displays the thread running information. If the SYSADMIN or MONADMIN user runs the command, information about all threads is displayed. Common users can query only information about the threads where the SQL statements executed by themselves are located.

Return type: SETOF record

Name

Type

Description

numagroup

int

NUMA group to which the current thread belongs.

worker_id

int

Thread ID of the current thread.

worker_bind_type

text

Thread binding mode. The value can be numabind, cpubind, allbind, or nobind.

worker_cpu_affinity

text

Affinity between threads and CPU cores, that is, the range of CPU cores that can be scheduled by threads.

worker_status

varchar

Current thread status.
  • Waiting: The session access is successful but it is not executed by the thread.
  • Running: The current statement is executed properly.
  • Control: The current statement enters the resource control phase.

served_query_id

bigint

ID of the SQL statement that is being executed.

served_query_text

text

Content of the SQL statement that is being executed.

gs_session_all_settings(sessionid bigint)

Description: Queries the full GUC parameter settings of the session corresponding to the session ID on the local node. This operation requires the SYSADMIN or MONADMIN permission.

Parameter: sessionid, indicating a session ID.

Return type: SETOF record

The following table describes return fields.

Name

Type

Description

name

text

Parameter name.

setting

text

Current parameter value.

unit

text

Implicit unit of a parameter.

Example:

gaussdb=#SELECT sessionid FROM pg_stat_activity WHERE usename = 'testuser';
 sessionid
-----------
    788861
(1 row)

gaussdb=# SELECT * FROM gs_session_all_settings(788861) WHERE name = 'work_mem';
   name   | setting | unit
----------+---------+------
 work_mem | 131072  | kB
(1 row)

gs_session_all_settings()

Description: Queries full GUC parameter settings of all sessions on the local node. This operation requires the SYSADMIN or MONADMIN permission.

Return type: SETOF record

Name

Type

Description

sessionid

bigint

Session ID.

pid

bigint

Backend thread ID.

name

text

Parameter name.

setting

text

Current parameter value.

unit

text

Implicit unit of a parameter.

Example:

gaussdb=#SELECT * FROM gs_session_all_settings() WHERE name = 'work_mem';
    sessionid    |       pid       |   name   | setting | unit
-----------------+-----------------+----------+---------+------
 140550214145792 |           96974 | work_mem | 65536   | kB
 140550214145792 |           96971 | work_mem | 65536   | kB
 140549731735296 | 140549731735296 | work_mem | 65536   | kB
 140549764413184 | 140549764413184 | work_mem | 65536   | kB
(4 rows)

gs_local_wal_preparse_statistics()

Description: Queries the latest startup of the log pre-parsing thread on the local node as well as the pre-parsing logs. This operation requires the SYSADMIN permission. The log pre-parsing thread is typically started by the CM component when the HA replication link of the standby DN is disconnected. If the log pre-parsing thread has been started, you can call this function to query the latest pre-parsing status. If the thread has not been started, this function returns the default value. In the DR scenario, the DN and CN of the standby cluster automatically start the log pre-parsing thread. Note that the CN only starts the log pre-parsing thread in the standby cluster.

Return type: SETOF record

Name

Type

Description

preparser_term

text

Maximum term value obtained from the latest pre-parsing log.

preparser_start_time

timestamptz

Time when the latest pre-parsing is started.

preparser_end_time

timestamptz

End time of the latest pre-parsing.

preparser_start_location

text

Start position of the latest pre-parsing log.

preparser_end_location

text

End position of the latest pre-parsing log.

preparser_total_bytes

int8

Number of latest pre-parsed logs, in bytes.

preparser_speed

int8

Latest pre-parsing speed, in bytes/ms.

is_valid

bool

Specifies whether the latest pre-parsing result can be used for leader selection.

The following is an example of the query result after the log pre-parsing thread is started:

gaussdb=#SELECT * FROM gs_local_wal_preparse_statistics();
 preparser_term |     preparser_start_time      |      preparser_end_time       | preparser_start_location | preparser_end_location | preparser_total_bytes | preparser_speed | is_valid 
----------------+-------------------------------+-------------------------------+--------------------------+------------------------+-----------------------+-----------------+----------
 3107           | 2023-02-01 17:04:23.367946+08 | 2023-02-01 17:04:25.354434+08 | 00000003/C3EEA660        | 00000004/0BE60738      |            1207394520 |      1207394520 | f
(1 row)
The following is an example of the query result when the log pre-parsing thread has not been started:
gaussdb=#SELECT * FROM gs_local_wal_preparse_statistics();
 preparser_term |  preparser_start_time  |   preparser_end_time   | preparser_start_location | preparser_end_location | preparser_total_bytes | preparser_speed | is_valid
----------------+------------------------+------------------------+--------------------------+------------------------+-----------------------+-----------------+----------
 0              | 2000-01-01 08:00:00+08 | 2000-01-01 08:00:00+08 | 00000000/00000000        | 00000000/00000000      |                     0 |               0 | f
(1 row)

gs_hot_standby_space_info()

Description: Queries the total number and total size of files in the standby_read/base_page, standby_read/block_info_meta and standby_read/lsn_info_meta folders.

Return type: SETOF record

Name

Type

Description

base_page_file_num

xid

Total number of bage_page_files.

base_page_total_size

xid

Total size of bage_page_files.

lsn_info_meta_file_num

xid

Total number of lsn_info_meta_files.

lsn_info_meta_total_size

xid

Total size of the lsn_info_meta_files.

block_info_meta_file_num

xid

Total number of block_info_meta_files.

block_info_meta_total_size

xid

Total size of the block_info_meta_files.

Example:

gaussdb=#SELECT * FROM gs_hot_standby_space_info();
 base_page_file_num | base_page_total_size | lsn_info_meta_file_num | lsn_info_meta_total_size | block_info_meta_file_num | block_info_meta_total_size
--------------------+----------------------+------------------------+--------------------------+--------------------------+----------------------------
                  6 |               163840 |                      6 |                     3136 |                       16 |                     147456
(1 row)

exrto_file_read_stat()

Description: Queries the number of disk access times and total access latency of new base page files, lsn info meta files, and block info meta files read on a standby node. Only a CN of a standby cluster for DR or a standby DN can be connected for query. In other cases, the query result is 0.

Return type: SETOF record

Name

Type

Description

lsn_info_page_disk_read_counter

int8

Number of disk access times of lsn info meta files.

lsn_info_page_disk_read_dur

int8

Total latency of lsn info meta file access to disks.

blk_info_meta_disk_read_counter

int8

Number of disk access times of block info meta files.

blk_info_meta_disk_read_dur

int8

Total latency of block info meta file access to disks.

base_page_read_disk_counter

int8

Number of disk access times of base page files.

base_page_read_disk_dur

int8

Total latency of base page file access to disks.

Example:

gaussdb=#SELECT * FROM exrto_file_read_stat();
 lsn_info_page_disk_read_counter | lsn_info_page_disk_read_dur | blk_info_meta_disk_read_counter | blk_info_meta_disk_read_dur | base_page_read_disk_counter | base_page_read_disk_dur
---------------------------------+-----------------------------+---------------------------------+-----------------------------+-----------------------------+-------------------------
                           14987 |                       92313 |                           23879 |                      129811 |                           0 |                       0
(1 row)

gs_exrto_recycle_info()

Description: Queries the resource recycling location, including the recycling LSN of each thread, global recycling LSN, and the earliest snapshot LSN of a query thread. Only a CN of a standby cluster for DR or a standby DN can be connected for query. In other cases, the query result is 0.

Return type: SETOF record

Name

Type

Description

page_redo_worker_thread_id

text

Reclamation LSN location of redo thread. thread_id indicates the redo thread ID.

global_recycle_lsn

text

LSN of global reclamation location.

exrto_snapshot_oldest_lsn

text

Earliest snapshot LSN of a query thread.

Example:

gaussdb=#SELECT * FROM gs_exrto_recycle_info();
            thread_id             | recycle_lsn
----------------------------------+-------------
 page_redo_worker_140148895381248 | 0/7B4552E0
 page_redo_worker_140148872312576 | 0/7B4535B8
 global_recycle_lsn               | 0/7B4535B8
 exrto_snapshot_oldest_lsn        | 0/8488E6D0
(4 rows)

gs_stat_get_db_conflict_all(oid)

Parameter: dbid(oid), indicating the OID of a database.

Description: Queries the number of sent replay conflict signals of different types.

Return type: SETOF record

Name

Type

Description

conflict_all

int8

Number of sent replay conflict signals.

conflict_tablespace

int8

Number of sent replay conflict signals of the tablespace type.

conflict_lock

int8

Number of sent replay conflict signals of the lock type.

conflict_snapshot

int8

Number of sent replay conflict signals of the snapshot type.

conflict_bufferpin

int8

Number of sent replay conflict signals of the bufferpin type.

conflict_startup_deadlock

int8

Number of sent replay conflict signals of the startup_deadlock type.

conflict_truncate

int8

Number of sent replay conflict signals of the truncate type.

conflict_standby_query_timeout

int8

Number of sent replay conflict signals of the standby_query_timeout type.

conflict_force_recycle

int8

Number of sent replay conflict signals of the force_recycle type.

Example:
gaussdb=#SELECT * FROM gs_stat_get_db_conflict_all(12738);
 conflict_all | conflict_tablespace | conflict_lock | conflict_snapshot | conflict_bufferpin | conflict_startup_deadlock | conflict_truncate | conflict_standby_query_timeout | conflict_force_recycle 
--------------+---------------------+---------------+-------------------+--------------------+---------------------------+-------------------+--------------------------------+------------------------
            0 |                   0 |             0 |                 0 |                  0 |                         0 |                 0 |                              0 |                      0
(1 row)

gs_redo_stat_info()

Description: Queries redo information, including the buffer hit ratio of the redo thread, number of unlink_rels files executed, wait event information of I/O operations generated when the redo thread reads the buffer in the ultimate RTO scenario, and wait event information of wal_read_from_write_buffer. You need to connect to a CN of a standby cluster for DR or a standby DN for query.

Return type: SETOF record

Name

Type

Description

buffer_hit_rate

float8

Buffer hit ratio of the redo thread.

ddl_unlink_nrels_count

int8

Number of unlink rel files executed during the redo process of DDL statements.

read_buffer_io_counter

int8

Number of wait events of I/O operations generated when the redo thread reads the buffer in the ultimate RTO scenario.

read_buffer_io_total_dur

int8

Total wait event duration of I/O operations generated when the redo thread reads the buffer in the ultimate RTO scenario.

read_buffer_io_avg_dur

int8

Average wait event duration of I/O operations generated when the redo thread reads the buffer in the ultimate RTO scenario.

read_buffer_io_min_dur

int8

Minimum wait event duration of I/O operations generated when the redo thread reads the buffer in the ultimate RTO scenario.

read_buffer_io_max_dur

int8

Maximum wait event duration of I/O operations generated when the redo thread reads the buffer in the ultimate RTO scenario.

read_wal_buf_counter

int8

Number of wait events triggered by wal_read_from_write_buffer in the ultimate RTO scenario.

read_wal_buf_total_dur

int8

Total wait event duration of wal_read_from_write_buffer in the ultimate RTO scenario.

read_wal_buf_avg_dur

int8

Average wait event duration of wal_read_from_write_buffer in the ultimate RTO scenario.

read_wal_buf_min_dur

int8

Minimum wait event duration of wal_read_from_write_buffer in the ultimate RTO scenario.

read_wal_buf_max_dur

int8

Maximum wait event duration of wal_read_from_write_buffer in the ultimate RTO scenario.

Example:

gaussdb=#SELECT * FROM gs_redo_stat_info();
-[ RECORD 1 ]------------+----------
buffer_hit_rate          | 70.5707
ddl_unlink_nrels_count   | 3
read_buffer_io_counter   | 1732
read_buffer_io_total_dur | 2850806
read_buffer_io_avg_dur   | 1645
read_buffer_io_min_dur   | 3
read_buffer_io_max_dur   | 981639
read_wal_buf_counter     | 9779
read_wal_buf_total_dur   | 193612470
read_wal_buf_avg_dur     | 19798
read_wal_buf_min_dur     | 3
read_wal_buf_max_dur     | 1914777

gs_recovery_conflict_waitevent_info()

Description: Queries wait event information about the function that processes redo conflicts. You need to connect to a CN of a standby cluster for DR or a standby DN for query.

Return type: SETOF record

Name

Type

Description

conflict_lock_counter

int8

Number of times that lock redo conflicts are triggered.

conflict_lock_total_dur

int8

Total duration for processing lock redo conflicts.

conflict_lock_avg_dur

int8

Average duration for processing lock redo conflicts.

conflict_lock_min_dur

int8

Minimum duration for processing lock redo conflicts.

conflict_lock_max_dur

int8

Maximum duration for processing lock redo conflicts.

conflict_snapshot_counter

int8

Number of times that snapshot redo conflicts are triggered.

conflict_snapshot_total_dur

int8

Total duration for processing snapshot redo conflicts.

conflict_snapshot_avg_dur

int8

Average duration for processing snapshot redo conflicts.

conflict_snapshot_min_dur

int8

Minimum duration for processing snapshot redo conflicts.

conflict_snapshot_max_dur

int8

Maximum duration for processing snapshot redo conflicts.

conflict_tablespace_counter

int8

Number of times that tablespace redo conflicts are triggered.

conflict_tablespace_total_dur

int8

Total duration for processing tablespace redo conflicts.

conflict_tablespace_avg_dur

int8

Average duration for processing tablespace redo conflicts.

conflict_tablespace_min_dur

int8

Minimum duration for processing tablespace redo conflicts.

conflict_tablespace_max_dur

int8

Maximum duration for processing tablespace redo conflicts.

conflict_database_counter

int8

Number of times that database redo conflicts are triggered.

conflict_database_total_dur

int8

Total duration for processing database redo conflicts.

conflict_database_avg_dur

int8

Average duration for processing database redo conflicts.

conflict_database_min_dur

int8

Minimum duration for processing database redo conflicts.

conflict_database_max_dur

int8

Maximum duration for processing database redo conflicts.

conflict_truncate_counter

int8

Number of times that TRUNCATE redo conflicts are triggered.

conflict_truncate_total_dur

int8

Total duration for processing TRUNCATE redo conflicts.

conflict_truncate_avg_dur

int8

Average duration for processing TRUNCATE redo conflicts.

conflict_truncate_min_dur

int8

Minimum duration for processing TRUNCATE redo conflicts.

conflict_truncate_max_dur

int8

Maximum duration for processing TRUNCATE redo conflicts.

conflict_standby_query_timeout_counter

int8

Number of times that standby_query_timeout redo conflicts are triggered.

conflict_standby_query_timeout_total_dur

int8

Total duration for processing standby_query_timeout redo conflicts.

conflict_standby_query_timeout_avg_dur

int8

Average duration for processing standby_query_timeout redo conflicts.

conflict_standby_query_timeout_min_dur

int8

Minimum duration for processing standby_query_timeout redo conflicts.

conflict_standby_query_timeout_max_dur

int8

Maximum duration for processing standby_query_timeout redo conflicts.

conflict_force_recycle_counter

int8

Number of times that force_recycle redo conflicts are triggered.

conflict_force_recycle_total_dur

int8

Total duration for processing force_recycle redo conflicts.

conflict_force_recycle_avg_dur

int8

Average duration for processing force_recycle redo conflicts.

conflict_force_recycle_min_dur

int8

Minimum duration for processing force_recycle redo conflicts.

conflict_force_recycle_max_dur

int8

Maximum duration for processing force_recycle redo conflicts.

Example:

gaussdb=#SELECT * FROM gs_recovery_conflict_waitevent_info();
-[ RECORD 1 ]----------------------------+------
conflict_lock_counter                    | 0
conflict_lock_total_dur                  | 0
conflict_lock_avg_dur                    | 0
conflict_lock_min_dur                    | 0
conflict_lock_max_dur                    | 0
conflict_snapshot_counter                | 0
conflict_snapshot_total_dur              | 0
conflict_snapshot_avg_dur                | 0
conflict_snapshot_min_dur                | 0
conflict_snapshot_max_dur                | 0
conflict_tablespace_counter              | 0
conflict_tablespace_total_dur            | 0
conflict_tablespace_avg_dur              | 0
conflict_tablespace_min_dur              | 0
conflict_tablespace_max_dur              | 0
conflict_database_counter                | 0
conflict_database_total_dur              | 0
conflict_database_avg_dur                | 0
conflict_database_min_dur                | 0
conflict_database_max_dur                | 0
conflict_truncate_counter                | 6
conflict_truncate_total_dur              | 35872
conflict_truncate_avg_dur                | 5978
conflict_truncate_min_dur                | 5130
conflict_truncate_max_dur                | 7459
conflict_standby_query_timeout_counter   | 0
conflict_standby_query_timeout_total_dur | 0
conflict_standby_query_timeout_avg_dur   | 0
conflict_standby_query_timeout_min_dur   | 0
conflict_standby_query_timeoutmax_dur    | 0
conflict_force_recycle_counter           | 0
conflict_force_recycle_total_dur         | 0
conflict_force_recycle_avg_dur           | 0
conflict_force_recycle_min_dur           | 0
conflict_force_recycle_max_dur           | 0

gs_display_delay_ddl_info()

Description: Views information about files that are delayed for deletion on the standby node.

Return type: SETOF record

Name

Type

Description

type

INT4

Indicates that the deleted object is a table or database.

lsn

TEXT

Marks the location of a particular log file.

tablespace

INT4

Indicates the physical space for storing tables and indexes in a database.

database

INT4

Indicates the physical storage location of a database.

relation

INT4

Indicates the object in a database, which can be the physical location of a table, view, or index.

bucketid

INT4

Specifies the bucket to which the relationship object belongs.

opt

INT4

Indicates the attribute of a compressed table.

forknum

INT4

Specifies a suffix name for a subject name. You can find a unique physical file based on the subject name and suffix name.

Example:
gaussdb=#SELECT * FROM gs_display_delay_ddl_info();
 type | lsn | tablespace | database | relation | bucketid | opt | forknum 
------+-----+------------+----------+----------+----------+-----+---------
(0 rows)