统计信息函数
统计信息函数根据访问对象分为两种类型:针对某个数据库进行访问的函数,以数据库中每个表或索引的OID作为参数,标识需要报告的数据库;针对某个服务器进行访问的函数,以一个服务器线程号为参数,其范围为从1到当前活跃服务器的数目。
pg_stat_get_db_conflict_tablespace(oid)
描述:由于恢复与数据库中删除的表空间发生冲突而取消的查询数。
返回值类型:bigint
pg_stat_get_db_conflict_truncate(oid)
描述:由于与数据库中在回放的truncate操作发生冲突而取消的查询数。
返回值类型:bigint
pg_stat_get_db_conflict_force_recycle(oid)
描述:由于极致RTO备机读触发强制回收而取消的查询数。
返回值类型:bigint
pg_stat_get_db_conflict_standby_query_timeout(oid)
描述:由于超过极致RTO备机读设置的查询时间上限而取消的查询数。
返回值类型:bigint
pg_stat_get_db_conflict_bufferpin(oid)
描述:冲突的缓冲区数目。
返回值类型:bigint
pg_stat_get_db_conflict_snapshot(oid)
描述:冲突的快照数目。
返回值类型:bigint
pg_stat_get_db_conflict_startup_deadlock(oid)
描述:冲突的死锁数目。
返回值类型:bigint
pg_stat_get_db_conflict_all(oid)
描述:由于数据库恢复冲突取消的查询数量(只在备用服务器发生的冲突)。
返回值类型:bigint
pg_control_group_config()
描述:在当前节点上打印cgroup配置。该函数需要SYSADMIN权限的用户才能够执行。
返回值类型:record
pg_stat_get_db_stat_reset_time(oid)
描述:上次重置数据库统计信息的时间。首次连接到每个数据库期间初始化为系统时间。当您在数据库上调用pg_stat_reset以及针对其中的任何表或索引执行pg_stat_reset_single_table_counters时,重置时间都会更新。
返回值类型:timestamptz
pg_stat_get_function_total_time(oid)
描述:该函数花费的总挂钟时间,以微秒为单位。包括花费在此函数调用其它函数上的时间。
返回值类型:bigint
pg_stat_get_xact_tuples_returned(oid)
描述:当前事务中参数为表时通过顺序扫描读取的行数,或参数为索引时返回的索引条目数。
返回值类型:bigint
pg_stat_get_xact_numscans(oid)
描述:当前事务中参数为表时执行的顺序扫描次数,或参数为索引时执行的索引扫描次数。
返回值类型:bigint
pg_stat_get_xact_blocks_fetched(oid)
描述:当前事务中对表或索引的磁盘块获取请求数。
返回值类型:bigint
pg_stat_get_xact_blocks_hit(oid)
描述:当前事务中对缓存中找到的表或索引的磁盘块获取请求数。
返回值类型:bigint
pg_stat_get_xact_function_calls(oid)
描述:在当前事务中调用该函数的次数。
返回值类型:bigint
pg_stat_get_xact_function_self_time(oid)
描述:在当前事务中仅花费在此函数上的时间。不包括花费在此函数内部调用其它函数上的时间。
返回值类型:bigint
pg_stat_get_xact_function_total_time(oid)
描述:当前事务中该函数所花费的总挂钟时间(以微秒为单位)。包括花费在此函数内部调用其它函数上的时间。
返回值类型:bigint
bucket_lock_status()
描述:查询打开事务所持有的bucket锁信息,所有用户均可执行该函数。
返回值类型:返回字段请参见GS_BUCKET_LOCKS视图返回字段中除node_name之外的字段。
gs_bucket_lock_status()
描述:查询所有节点中的打开事务所持有的bucket锁信息,所有用户均可执行该函数。
返回值类型:返回字段请参见GS_BUCKET_LOCKS视图返回字段,该视图是通过查询本函数得到的结果。
gs_lwlock_status()
描述:查询数据库系统内所有轻量级锁信息,包括等锁和持锁信息,所有用户均可执行该函数。
返回值类型:setof record
pg_stat_get_wal_senders()
描述:在主机端查询walsender信息。
返回值类型:setof record
返回字段说明如下:
字段名称 |
字段类型 |
字段说明 |
---|---|---|
pid |
bigint |
walsender的线程号。 |
sender_pid |
integer |
walsender的pid相对的轻量级线程号。 |
local_role |
text |
主节点类型。 |
peer_role |
text |
备节点类型。 |
peer_state |
text |
备节点状态。 |
state |
text |
walsender状态。 |
catchup_start |
timestamp with time zone |
catchup启动时间。 |
catchup_end |
timestamp with time zone |
catchup结束时间。 |
sender_sent_location |
text |
主节点发送位置。 |
sender_write_location |
text |
主节点落盘位置。 |
sender_flush_location |
text |
主节点flush磁盘位置。 |
sender_replay_location |
text |
主节点redo位置。 |
receiver_received_location |
text |
备节点接收位置。 |
receiver_write_location |
text |
备节点落盘位置。 |
receiver_flush_location |
text |
备节点flush磁盘位置。 |
receiver_replay_location |
text |
备节点redo磁盘位置。 |
sync_percent |
text |
同步百分比。 |
sync_state |
text |
同步状态。 |
sync_group |
text |
同步复制的所属分组。 |
sync_priority |
text |
同步复制的优先级。 |
sync_most_available |
text |
最大可用模式设置。 |
channel |
text |
walsender信道信息。 |
get_paxos_replication_info()
描述:查询Paxos模式下主机或备机的复制状态。
返回值类型:setof record
返回字段说明如下:
字段名称 |
字段类型 |
字段说明 |
---|---|---|
paxos_write_location |
text |
已经写入DCF的XLog位置。 |
paxos_commit_location |
text |
已经在DCF中达成一致的XLog位置。 |
local_write_location |
text |
数据在节点上的存储路径。 |
local_flush_location |
text |
节点的flush磁盘位置。 |
local_replay_location |
text |
节点的redo磁盘位置。 |
dcf_replication_info |
text |
节点的DCF模块信息。字符串为JSON格式,其中各字段含义分别如下: role:表示当前节点角色,角色可分为LEADER、FOLLOWER、LOGGER、PASSIVE、UNKNOW。 term:选举任期。 run_mode:DCF运行模式,当前0表示自动选举模式,1表示手动选举模式,2表示关闭选举模式。 work_mode:DCF工作模式。 hb_interval:DCF节点间心跳间隔时间,单位ms。 elc_timeout:DCF选举超时时间,单位ms。 applied_index:被应用到状态机的日志位置。 commit_index:已被大多数DCF节点保存的日志位置,此commit_index之前日志均已持久化。 first_index:DCF节点保存的首条日志位置,此位置会随着DN调用dcf_truncate而向后推进,之前的日志会被清理。 last_index:DCF节点保存的最后一条日志位置,此日志位置包含DCF节点存储在内存里但是没有持久化的日志。 cluster_min_apply_idx:集群最小已应用的日志位置。 leader_id:leader节点ID。 leader_ip:leader节点IP。 leader_port:leader节点端口,DCF内部使用 。 nodes:本集群其他节点信息,包含节点的id、ip、port、role等关键信息。 |
示例:
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()
描述:在CN实例查询集群中是否存在处于日志追赶状态的备DN,以及追赶状态详情。
返回值类型:setof record
pg_stat_get_stream_replications()
描述:查询主备复制状态。
返回值类型:setof record
返回值说明如下表所示。
返回参数 |
返回参数类型 |
返回参数说明 |
---|---|---|
local_role |
text |
本地角色。 |
static_connections |
integer |
连接统计。 |
db_state |
text |
数据库状态。 |
detail_information |
text |
详细信息。 |
pg_stat_get_db_numbackends(oid)
描述:处理该数据库活跃的服务器线程数目。
返回值类型:integer
pg_stat_get_db_xact_commit(oid)
描述:数据库中已提交事务的数量。
返回值类型:bigint
pg_stat_get_db_xact_rollback(oid)
描述:数据库中回滚事务的数量。
返回值类型:bigint
pg_stat_get_db_blocks_fetched(oid)
描述:数据库中磁盘块抓取请求的总数。
返回值类型:bigint
pg_stat_get_db_blocks_hit(oid)
描述:数据库在缓冲区中找到的磁盘块抓取请求的总数。
返回值类型:bigint
pg_stat_get_db_tuples_returned(oid)
描述:为数据库返回的Tuple数。
返回值类型:bigint
pg_stat_get_db_tuples_fetched(oid)
描述:为数据库中获取的Tuple数。
返回值类型:bigint
pg_stat_get_db_tuples_inserted(oid)
描述:在数据库中插入Tuple数。
返回值类型:bigint
pg_stat_get_db_tuples_updated(oid)
描述:在数据库中更新的Tuple数。
返回值类型:bigint
pg_stat_get_db_blk_read_time(oid)
描述:通过数据库后端读取数据文件块花费的时间,以毫秒计算。
返回值类型:double
pg_stat_get_db_blk_write_time(oid)
描述:通过数据库后端写入数据文件块花费的时间,以毫秒计算。
返回值类型:double
pg_stat_get_db_tuples_deleted(oid)
描述:数据库中删除Tuple数。
返回值类型:bigint
pg_stat_get_db_conflict_lock(oid)
描述:数据库中锁冲突的数量。
返回值类型:bigint
pg_stat_get_db_deadlocks(oid)
描述:数据库中死锁的数量。
返回值类型:bigint
pg_stat_get_numscans(oid)
描述:如果参数是一个表,则函数返回通过顺序扫描读取的次数。如果参数是一个索引,则返回索引行的扫描次数。
返回值类型:bigint
pg_stat_get_role_name(oid)
描述:根据用户oid获取用户名。仅SYSADMIN和MONADMIN用户可以访问。
返回值类型:text
示例:
gaussdb=# SELECT pg_stat_get_role_name(10);
pg_stat_get_role_name
-----------------------
aabbcc
(1 row)
pg_stat_get_tuples_returned(oid)
描述:如果参数是一个表,则函数返回通过顺序扫描读取的活跃行数。如果参数是一个索引,则返回活跃索引行的数量。
返回值类型:bigint
pg_stat_get_tuples_fetched(oid)
描述:如果参数是一个表,则函数返回通过位图扫描抓取的行数。如果参数是一个索引,则用简单索引扫描在原表中抓取的行数。
返回值类型:bigint
pg_stat_get_tuples_inserted(oid)
描述:插入表中行的数量。
返回值类型:bigint
pg_stat_get_tuples_updated(oid)
描述:在表中已更新行的数量。
返回值类型:bigint
pg_stat_get_tuples_deleted(oid)
描述:从表中删除行的数量。
返回值类型:bigint
pg_stat_get_tuples_changed(oid)
描述:该表上一次analyze或autoanalyze之后插入、更新、删除行的总数量。
返回值类型:bigint
pg_stat_get_tuples_hot_updated(oid)
描述:表热更新的行数。
返回值类型:bigint
pg_stat_get_live_tuples(oid)
描述:表活行数。
返回值类型:bigint
pg_stat_get_dead_tuples(oid)
描述:表死行数。在Ustore表中仅代表不活跃行指针数量。
返回值类型:bigint
pg_stat_get_blocks_fetched(oid)
描述:表或者索引的磁盘块抓取请求的数量。
返回值类型:bigint
pg_stat_get_blocks_hit(oid)
描述:在缓冲区中找到的表或者索引的磁盘块请求数目。
返回值类型:bigint
pg_stat_get_xact_tuples_fetched(oid)
描述:事务中扫描的tuple行数。
返回值类型:bigint
pg_stat_get_xact_tuples_inserted(oid)
描述:表相关的活跃子事务中插入的tuple数。
返回值类型:bigint
pg_stat_get_xact_tuples_deleted(oid)
描述:表相关的活跃子事务中删除的tuple数。
返回值类型:bigint
pg_stat_get_xact_tuples_hot_updated(oid)
描述:表相关的活跃子事务中热更新的tuple数。
返回值类型:bigint
pg_stat_get_xact_tuples_updated(oid)
描述:表相关的活跃子事务中更新的tuple数。
返回值类型:bigint
pg_stat_get_last_vacuum_time(oid)
描述:用户在该表上最后一次手动启动清理或者autovacuum线程启动清理的时间。
返回值类型:timestamptz
pg_stat_get_last_autovacuum_time(oid)
描述:autovacuum守护线程在该表上最后一次启动清理的时间。
返回值类型:timestamptz
pg_stat_get_vacuum_count(oid)
描述:用户在该表上启动清理的次数。
返回值类型:bigint
pg_stat_get_autovacuum_count(oid)
描述:autovacuum守护线程在该表上启动清理的次数。
返回值类型:bigint
pg_stat_get_last_analyze_time(oid)
描述:用户在该表上最后一次手动启动分析或者autovacuum线程启动分析的时间。
返回值类型:timestamptz
pg_stat_get_last_autoanalyze_time(oid)
描述:autovacuum守护线程在该表上最后一次启动分析的时间。
返回值类型:timestamptz
pg_stat_get_analyze_count(oid)
描述:用户在该表上启动分析的次数。
返回值类型:bigint
pg_stat_get_autoanalyze_count(oid)
描述:autovacuum守护线程在该表上启动分析的次数。
返回值类型:bigint
gs_stat_get_all_tabentries()
描述:在GUC参数enable_gsstat_cache设置为on时,用户可使用gs_stat_get_all_tabentries()获取其他节点的PgStat统计信息。内部函数,不建议用户直接使用。
返回值类型:setof record
返回参数说明如表4 返回参数说明所示。
返回参数 |
返回参数类型 |
返回参数说明 |
---|---|---|
node_name |
name |
节点的名称(pgxc_node中的node_name)。 |
nspname |
name |
Schema名称。 |
relname |
name |
表、索引名称。 |
tuples_returned |
bigint |
如果是表,则返回顺序扫描读取的行数目。如果是索引,则返回索引行的数目。 |
tuples_fetched |
bigint |
如果是表,则用位图扫描抓取的行数目。如果是索引,则用简单索引扫描抓取的行数目。 |
tuples_inserted |
bigint |
插入表中行的数量。 |
tuples_updated |
bigint |
在表中已更新行的数量。 |
tuples_deleted |
bigint |
从表中删除行的数量。 |
tuples_hot_updated |
bigint |
热更新的行数表。 |
n_live_tuples |
bigint |
活行数表。 |
n_dead_tuples |
bigint |
死行数表。在Ustore表中仅代表不活跃行指针数量。 |
blocks_fetched |
bigint |
表或者索引的磁盘块抓取请求的数量。 |
blocks_hit |
bigint |
在缓冲区中找到的表或者索引的磁盘块请求数目。 |
numscans |
bigint |
如果是表,则返回顺序扫描读取的行数目。如果是索引,则返回索引行的数目。 |
autovac_vacuum_timestamp |
timestamp with time zone |
autovacuum守护进程在该表上最后一次启动清理的时间。 |
autovac_vacuum_count |
bigint |
autovacuum守护进程在该表上启动清理的次数。 |
autovac_analyze_timestamp |
timestamp with time zone |
autovacuum守护进程在该表上最后一次启动分析的时间。 |
autovac_analyze_count |
bigint |
autovacuum守护进程在该表上启动分析的次数。 |
state_change_timestamp |
timestamp with time zone |
返回DBE_PERF.stat_all_tables视图中对各表各项监控指标字段更新的时间。 |
index_stat_change_timestamp |
timestamp with time zone |
返回DBE_PERF.stat_all_indexes视图中对各表各项监控指标字段更新的时间。 |
state_io_change_timestamp |
timestamp with time zone |
返回DBE_PERF.statio_all_indexes, DBE_PERF.statio_all_tables视图中对各表各项监控指标字段更新的时间。 |
pg_total_autovac_tuples(bool)
描述:返回total autovac相关的tuple记录,如nodename、nspname、relname以及各类tuple的IUD信息,入参为:是否查询relation信息。
返回值类型:setof record
返回参数说明如下。
返回参数 |
返回参数类型 |
返回参数说明 |
---|---|---|
nodename |
name |
节点名称。 |
nspname |
name |
名称空间名称。 |
relname |
name |
表、索引、视图等对象名称。 |
partname |
name |
分区名称。 |
n_dead_tuples |
bigint |
表分区内的死行数。在Ustore表中仅代表不活跃行指针数量。 |
n_live_tuples |
bigint |
表分区内的活行数。 |
changes_since_analyze |
bigint |
analyze产生改变的数量。 |
pg_total_gsi_autovac_tuples(bool)
描述:返回全部与autovac相关的tuple记录,如nodename、nspname、relname以及GSI自上次analyze操作之后发生变化的记录数,输入参数决定是否查询relation信息。该函数用于辅助autovacuum处理全局二级索引,不建议用户使用。
返回值类型:setof record
pg_autovac_status(oid)
描述:返回与autovac状态相关的参数信息,如nodename、nspname、relname、analyze、vacuum设置、analyze/vacuum阈值以及analyze/vacuum tuple数等。仅SYSADMIN可以使用该函数。
返回值类型:setof record
返回值参数说明如下。
返回参数 |
返回参数类型 |
返回参数说明 |
---|---|---|
nspname |
text |
名称空间名称。 |
relname |
text |
表、索引、视图等对象名称。 |
nodename |
text |
节点名称。 |
doanalyze |
Boolean |
是否执行analyze。 |
anltuples |
bigint |
analyze tuple数量。 |
anlthresh |
bigint |
analyze阈值。 |
dovacuum |
Boolean |
是否执行vacuum。 |
vactuples |
bigint |
vacuum tuple数量。 |
vacthresh |
bigint |
vacuum阈值。 |
pg_autovac_timeout(oid)
描述:返回某个表在autovac过程中连续超时的次数。如果表信息非法或node信息异常,则返回NULL。
返回值类型:bigint
pg_autovac_coordinator(oid)
描述:返回对某个表进行autovac的coordinator名称。如果表信息非法或node信息异常,则返回NULL。
返回值类型:text
pg_stat_get_last_data_changed_time(oid)
描述:对于在表上的修改insert/update/delete/truncate和在表的分区(partition/subpartition)上的修改exchange/truncate/drop,在该表上最后一次操作的时间,PG_STAT_ALL_TABLES视图last_data_changed列的数据是通过该函数求值,在表数量很大的场景中,通过视图获取表数据最后修改时间的性能较差,建议直接使用该函数获取表数据的最后修改时间。入参是表的oid。
返回值类型:timestamptz
pg_stat_set_last_data_changed_time(oid)
描述:手动设置该表上最后一次insert/update/delete, exchange/truncate/drop partition操作的时间。
返回值类型:void
pg_stat_get_last_updated(oid, text)
描述:返回DBE_PERF.stat_all_tables, DBE_PERF.stat_all_indexes, DBE_PERF.statio_all_indexes, DBE_PERF.statio_all_tables视图中对各表各项监控指标字段更新的时间。入参1为表的oid,入参2为text类型,取值为"stat_table", "stat_index", "stat_io"。
返回值类型:timestamptz
pg_backend_pid()
描述:当前会话的服务器线程的线程ID。
返回值类型:integer
pg_stat_get_activity(integer)
描述:返回一个关于带有特殊PID的后台线程的记录信息,当参数为NULL时,则返回每个活动的后台线程的记录。返回结果不包含connection_info列。初始用户、系统管理员和MONADMIN可以查看所有的数据,普通用户只能查询自己的结果。
示例:
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)
返回值类型:setof record
返回参数说明如下。
返回参数 |
返回参数类型 |
返回参数说明 |
---|---|---|
datid |
oid |
用户会话在后台连接到的数据库OID。 |
pid |
bigint |
后台线程ID。 |
sessionid |
bigint |
会话ID。 |
usesysid |
oid |
登录该后台的用户OID。 |
application_name |
text |
连接到该后台的应用名。 |
state |
text |
该后台当前总体状态。 |
query |
text |
该后台的最新查询。如果state状态是active(活跃的),此字段显示当前正在执行的查询。所有其他情况表示上一个查询。 |
waiting |
Boolean |
如果后台当前正等待锁则为true。 |
xact_start |
timestamp with time zone |
启动当前事务的时间,如果没有事务是活跃的,则为null。 如果当前查询是首个事务,则这列等同于query_start列。 |
query_start |
timestamp with time zone |
开始当前活跃查询的时间,如果state的值不是active,则这个值是上一个查询的开始时间。 |
backend_start |
timestamp with time zone |
该过程开始的时间,即当客户端连接服务器时。 |
state_change |
timestamp with time zone |
上次状态改变的时间。 |
client_addr |
inet |
连接到该后台的客户端的IP地址。如果此字段是null,表示客户端是通过服务器上的UNIX套接字连接的,或者是内部线程,如autovacuum。 |
client_hostname |
text |
客户端的主机名,这个字段是通过client_addr进行反向DNS查找得到的。这个字段只有在启动log_hostname且使用IP连接时才非空。 |
client_port |
integer |
客户端用于与后台通讯的TCP端口号,如果使用Unix套接字,则为-1。 |
enqueue |
text |
该字段暂不支持。 |
query_id |
bigint |
查询语句的ID。 |
srespool |
name |
资源池名字。 |
global_sessionid |
text |
全局会话id。 |
unique_sql_id |
bigint |
语句的unique sql id。 |
trace_id |
text |
驱动传入的trace id,与应用的一次请求相关联。 |
pg_stat_get_activity_with_conninfo(integer)
描述:返回一个关于带有特殊PID的后台线程的记录信息,当参数为NULL时,则返回每个活动的后台线程的记录。初始用户、系统管理员和MONADMIN可以查看所有的数据,普通用户只能查询自己的结果。
返回值类型:setof record
返回值说明如下。
返回值 |
返回值类型 |
返回值说明 |
---|---|---|
datid |
oid |
用户会话在后台连接到的数据库OID。 |
pid |
bigint |
后台线程ID。 |
sessionid |
bigint |
会话ID。 |
usesysid |
oid |
登录该后台的用户OID。 |
application_name |
text |
连接到该后台的应用名。 |
state |
text |
该后台当前总体状态。 |
query |
text |
该后台的最新查询。如果state状态是active(活跃的),此字段显示当前正在执行的查询。所有其他情况表示上一个查询。 |
waiting |
Boolean |
如果后台当前正等待锁则为true。 |
xact_start |
timestamp with time zone |
启动当前事务的时间,如果没有事务是活跃的,则为null。如果当前查询是首个事务,则这列等同于query_start列。 |
query_start |
timestamp with time zone |
开始当前活跃查询的时间,如果state的值不是active,则这个值是上一个查询的开始时间。 |
backend_start |
timestamp with time zone |
该过程开始的时间,即当客户端连接服务器时。 |
state_change |
timestamp with time zone |
上次状态改变的时间。 |
client_addr |
inet |
连接到该后台的客户端的IP地址。如果此字段是null,表示客户端通过服务器上的UNIX套接字连接的,或者是内部线程,如autovacuum。 |
client_hostname |
text |
客户端的主机名,这个字段是通过client_addr进行反向DNS查找得到的。这个字段只有在启动log_hostname且使用IP连接时才非空。 |
client_port |
integer |
客户端用于与后台通讯的TCP端口号,如果使用Unix套接字,则为-1。 |
enqueue |
text |
该字段暂不支持。 |
query_id |
bigint |
查询语句的ID。 |
connection_info |
text |
json格式字符串,记录当前连接数据库的驱动类型、驱动版本号、当前驱动的部署路径、线程属主用户等信息。 |
srespool |
name |
资源池名字。 |
global_sessionid |
text |
全局会话ID。 |
unique_sql_id |
bigint |
语句的unique sql id。 |
trace_id |
text |
驱动传入的trace id,与应用的一次请求相关联。 |
top_xid |
xid |
事务的顶层事务ID。 |
current_xid |
xid |
事务的当前事务ID。 |
xlog_quantity |
bigint |
事务当前使用的XLOG量,单位为字节。 |
gs_get_explain(integer)
描述:返回一个关于指定PID的后台线程的运行态计划,PID不能为空。该功能生效的必要条件是GUC参数track_activities为on,支持语句的范围为可以explain且其计划不包含STREAM算子的SQL。详细说明如下:
- 若GUC参数plan_collect_thresh=-1,则该函数的返回结果一直为空。
- 若GUC参数plan_collect_thresh=0,若当前SQL执行时间大于等于GUC参数log_min_duration_statement指定值,且计划中所有算子处理的tuple数量和大于等于10000时,开始收集运行态计划;且后续每当所有算子处理tuple数量的和的增量超过10000时,进行一次收集。
- 若GUC参数plan_collect_thresh>0,会按照该参数指定的阈值进行增量收集运行态计划。
- 该函数只能看到在CN生成的计划,若查看在DN生成的计划,需要参考函数gs_get_dn_explain。
返回值类型:text,具体各个字段的类型和含义如下:
返回值 |
返回值类型 |
返回值说明 |
---|---|---|
运行态计划字符串 |
text |
其中计划字符串中的A-rows是算子实时返回行数。 |
gs_get_dn_explain(text, bigint)
描述:返回一个关于指定node name(来自pgxc_node系统表的node_name字段)和global session id的DN的后台线程的运行态计划,global session id不能为空。该功能生效的必要条件是GUC参数track_activities为on,支持语句的范围为可以explain且其计划不包含STREAM算子的SQL。详细说明如下:
- 同函数gs_get_explain,其中global session id是由pg_stat_activity字段global_sessionid计算而来。global_sessionid格式如下:${number1}:${number2}#{number3},样例为1938253334:1#0,那么gs_get_dn_explain函数的参数值应为${number2}*10000000000+${number1}。
- 另外该函数需要ADMIN或MONADMIN权限才可执行。
返回值 |
返回值类型 |
返回值说明 |
---|---|---|
运行态计划字符串 |
text |
其中计划字符串中的A-rows是算子实时返回行数。 |
pg_stat_get_activity_ng(integer)
描述:返回一个关于带有特殊PID的活跃后台线程记录信息,当参数为NULL时,则返回每个活跃的后台线程的记录。系统管理员和MONADMIN可以查看所有的数据,普通用户只能查询自己的结果。
返回值类型:setof record
函数返回字段说明如下:
名称 |
类型 |
描述 |
---|---|---|
datid |
oid |
数据库oid。 |
pid |
bigint |
后端线程的ID。 |
sessionid |
bigint |
会话的id。 |
node_group |
text |
数据所属用户对应的node group。 |
pg_stat_get_function_calls(oid)
描述:函数已被调用次数。
返回值类型:bigint
pg_stat_get_function_self_time(oid)
描述:只有在此函数所花费的时间。此函数嵌套调用其它函数所花费的时间被排除在外。
返回值类型:bigint
pg_stat_get_backend_idset()
描述:设置当前活动的服务器线程数(从1到活动服务器线程的数量)。
返回值类型:setofinteger
pg_stat_get_backend_pid(integer)
描述:给定的服务器线程的线程ID。
返回值类型:bigint
pg_stat_get_backend_dbid(integer)
描述:给定服务器线程的数据库ID。
返回值类型:oid
pg_stat_get_backend_userid(integer)
描述:给定服务器线程的用户ID,本函数仅系统管理员可调用。
返回值类型:oid
pg_stat_get_backend_activity(integer)
描述:给定服务器线程的当前活动查询,仅在调用者是系统管理员或被查询会话的用户,并且打开track_activities的时候才能获得结果。
返回值类型:text
pg_stat_get_backend_waiting(integer)
描述:如果给定服务器线程在等待某个锁,并且调用者是系统管理员或被查询会话的用户,并且打开track_activities的时候才返回真。
返回值类型:Boolean
pg_stat_get_backend_activity_start(integer)
描述:给定服务器线程当前正在执行的查询的起始时间,仅在调用者是系统管理员或被查询会话的用户,并且打开track_activities的时候才能获得结果。
返回值类型:timestampwithtimezone
pg_stat_get_backend_xact_start(integer)
描述:给定服务器线程当前正在执行的事务的开始时间,但只有当前用户是系统管理员或被查询会话的用户,并且打开track_activities的时候才能获得结果。
返回值类型:timestampwithtimezone
pg_stat_get_backend_start(integer)
描述:给定服务器线程启动的时间,如果当前用户不是系统管理员或被查询的后端的用户,则返回NULL。
返回值类型:timestampwithtimezone
pg_stat_get_backend_client_addr(integer)
描述:连接到给定客户端后端的IP地址。如果客户端是通过Unix域套接字连接,则返回NULL;如果当前用户不是系统管理员或被查询会话的用户,也返回NULL。
返回值类型:inet
pg_stat_get_backend_client_port(integer)
描述:连接到给定客户端后端的TCP端口。如果客户端是通过Unix域套接字连接,则返回-1;如果当前用户不是系统管理员或被查询会话的用户,也返回NULL。
返回值类型:integer
pg_stat_get_bgwriter_timed_checkpoints()
描述:后台写线程开启定时检查点的时间(因为checkpoint_timeout时间已经过期了)。
返回值类型:bigint
pg_stat_get_bgwriter_requested_checkpoints()
描述:后台写线程开启基于后端请求的检查点的时间,因为已经超过了checkpoint_segments或因为已经执行了CHECKPOINT。
返回值类型:bigint
pg_stat_get_bgwriter_buf_written_checkpoints()
描述:在检查点期间后台写线程写入的缓冲区数目。
返回值类型:bigint
pg_stat_get_bgwriter_buf_written_clean()
描述:为日常清理脏块,后台写线程写入的缓冲区数目。
返回值类型:bigint
pg_stat_get_bgwriter_maxwritten_clean()
描述:后台写线程停止清理扫描的时间,因为已经写入了更多的缓冲区(相比bgwriter_lru_maxpages参数声明的缓冲区数)。
返回值类型:bigint
pg_stat_get_buf_written_backend()
描述:后端线程写入的缓冲区数,因为它们需要分配一个新的缓冲区。
返回值类型:bigint
pg_stat_get_buf_alloc()
描述:分配的总缓冲区数。
返回值类型:bigint
pg_stat_clear_snapshot()
描述:清理当前的统计快照。该函数仅SYSADMIN和MONADMIN可以执行。
返回值类型:void
pg_stat_reset()
描述:将当前数据库的统计计数器重置为0(需要系统管理员权限)。
返回值类型:void
gs_stat_reset()
描述:将各节点上当前数据库的统计计数器重置为0(需要系统管理员权限)。
返回值类型:void
pg_stat_reset_shared(text)
描述:重置shared cluster中每个节点上当前数据库的统计计数器为0(需要系统管理员权限)。
返回值类型:void
pg_stat_reset_single_table_counters(oid)
描述:将当前数据库中指定表或索引的统计计数器重置为0(需要系统管理员权限)。
返回值类型:void
pg_stat_reset_single_function_counters(oid)
描述:将当前数据库中指定函数的统计计数器重置为0(需要系统管理员权限)。
返回值类型:void
pgxc_fenced_udf_process(integer)
描述:查看UDF Master和Work线程数,仅SYSADMIN和MONADMIN用户有权限执行。入参为1时查看master线程数,入参为2时查看worker线程数,入参为3时终止所有worker线程。
返回值类型:text
fenced_udf_process(integer)
描述:查看本地UDF Master和Work线程数。入参为1时查看master线程数,入参为2时查看worker线程数,入参为3时终止所有worker线程。
返回值类型:text
total_cpu()
描述:获取当前节点使用的cpu时间,单位是jiffies。
返回值类型:bigint
total_memory()
描述:获取当前节点使用的虚拟内存大小,单位KB。
返回值类型:bigint
pgxc_terminate_all_fenced_udf_process()
描述:Kill所有的UDF Work线程,仅SYSADMIN和MONADMIN用户有权限执行。
返回值类型:boolean
gs_get_nodegroup_tablecount(name)
描述:得到一个节点组中所有数据库包含的用户表数目。
返回值类型:integer
pgxc_max_datanode_size(name)
描述:得到一个node_group的所有DN节点中数据库文件占用磁盘空间的最大值,单位为字节。
返回值类型:bigint
gs_check_tables_distribution()
描述: 检查当前系统中用户表的分布是否存在不一致,如果返回空记录,表示不存在不一致。该函数应该在非扩缩容重分布时调用。
返回值类型:record
pg_stat_bad_block(text, int, int, int, int, int, timestamp with time zone, timestamp with time zone)
描述:获取当前节点自启动后,读取出现Page的损坏信息。
返回值类型:record
pgxc_stat_bad_block(text, int, int, int, int, int, timestamp with time zone, timestamp with time zone)
描述:获取集群所有节点自启动后,读取出现Page的损坏信息。
返回值类型:record
pg_stat_bad_block_clear()
描述:清理节点记录的读取出现的Page损坏信息(需要系统管理员权限)。
返回值类型:void
pgxc_stat_bad_block_clear
描述:清理集群所有节点记录的读取出现的Page损坏信息(需要系统管理员权限)。
返回值类型:void
pgxc_log_comm_status(void)
描述:当使用sctp(由于规格变更,当前版本已经不再支持本特性,请不要使用)通信模式时,PGXC系统视图将datanode的通信层状态输出到各个日志文件中。
返回值类型:void
gs_respool_exception_info(pool text)
描述:查看某个资源池关联的查询规则信息。
返回值类型:record
gs_control_group_info(pool text)
描述:查看资源池关联的控制组信息。该函数需要SYSADMIN权限的用户才能够执行。
返回值类型:record
返回信息如下:
属性 |
属性值 |
描述 |
---|---|---|
name |
class_a:workload_a1 |
class和workload名称。 |
class |
class_a |
Class控制组名称。 |
workload |
workload_a1 |
Workload控制组名称。 |
type |
DEFWD |
控制组类型(Top、CLASS、BAKWD、DEFWD、TSWD)。 |
gid |
87 |
控制组id。 |
shares |
30 |
占父节点CPU资源的百分比。 |
limits |
0 |
占父节点CPU核数的百分比。 |
rate |
0 |
Timeshare中的分配比例。 |
cpucores |
0-3 |
CPU核心数。 |
gs_all_control_group_info()
描述:查看数据库内所有的控制组信息。函数返回信息具体的字段请参见16.3.48 GS_ALL_CONTROL_GROUP_INFO。
返回值类型:record
gs_get_control_group_info()
描述:查看所有的控制组信息。函数返回信息具体的字段请参见16.3.53 GS_GET_CONTROL_GROUP_INFO。该函数需要SYSADMIN权限的用户才能够执行。
返回值类型:record
gs_get_global_session_sql_memory()
描述:查看当前所有节点上运行中语句的内存使用量。函数返回信息具体字段请参见GLOBAL_SESSION_SQL_MEMORY。
返回值类型:record
gs_blackbox_dump()
描述:将系统中的黑匣子文件导出到“$GAUSSLOG/gs_blackbox/{nodename}”目录中。执行成功后返回在“$GAUSSLOG/gs_blackbox/{nodename}”中生成的黑匣子文件的名称。
返回值类型:text
gs_blackbox_show(blackBoxFile cstring)
描述:解析黑匣子文件,并按照表格方式展示。
参数:
参数名称 |
参数说明 |
取值范围 |
---|---|---|
blackBoxFile |
指定需要解析的黑匣子文件,不指定参数表示当前进程采集的黑匣子文件。 |
字符串,或者不指定,指定有效的黑匣子文件名字,则读取“$GAUSSLOG/gs_blackbox/nodename”目录下对应名称的文件。仅支持名称,不支持路径,如果在“$GAUSSLOG/gs_blackbox/nodename”下不存在对应名称的文件,则报错返回。 |
返回值类型:setof record
返回值说明如下:
返回值 |
返回值类型 |
返回值说明 |
---|---|---|
type |
text |
黑匣子字段类型。 |
tid |
bigint |
线程号。 |
sample_time |
timestamp |
采集时间。 |
value |
text |
黑匣子记录的内容。 |
查询结果举例如下:
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()
描述:列举当前实例黑匣子目录下的黑匣子文件。默认是“$GAUSSLOG/gs_blackbox/{nodename}”目录下。
返回值类型:setof record
返回值说明如下:
返回值 |
返回值类型 |
返回值说明 |
---|---|---|
file |
text |
黑匣子文件名称。 |
get_instr_workload_info(integer)
描述:获取当前CN节点上事务量信息,事务时间信息。
返回值类型:record
属性 |
属性值 |
描述 |
---|---|---|
user_oid |
10 |
用户id。 |
commit_counter |
4 |
前端事务commit数量。 |
rollback_counter |
1 |
前端事务rollback数量。 |
resp_min |
949 |
前端事务最小响应时间(单位:微秒)。 |
resp_max |
201891 |
前端事务最大响应时间(单位:微秒)。 |
resp_avg |
43564 |
前端事务平均响应时间(单位:微秒)。 |
resp_total |
217822 |
前端事务总响应时间(单位:微秒)。 |
bg_commit_counter |
910 |
后端事务commit数量。 |
bg_rollback_counter |
0 |
后端事务rollback数量。 |
bg_resp_min |
97 |
后端事务最小响应时间(单位:微秒)。 |
bg_resp_max |
678080687 |
后端事务最大响应时间(单位:微秒)。 |
bg_resp_avg |
327847884 |
后端事务平均响应时间(单位:微秒)。 |
bg_resp_total |
298341575300 |
后端事务总响应时间(单位:微秒)。 |
dbid |
oid |
数据库标识。 |
pv_instance_time()
描述:获取当前节点上各个关键阶段的时间消耗。
返回值类型:record
Stat_name属性 |
属性值 |
描述 |
---|---|---|
DB_TIME |
1062385 |
所有线程端到端的墙上时间(WALL TIME)消耗总和(单位:微秒)。 |
CPU_TIME |
311777 |
所有线程CPU时间消耗总和(单位:微秒)。 |
EXECUTION_TIME |
380037 |
消耗在执行器上的时间总和(单位:微秒)。 |
PARSE_TIME |
6033 |
消耗在SQL解析上的时间总和(单位:微秒)。 |
PLAN_TIME |
173356 |
消耗在执行计划生成上的时间总和(单位:微秒)。 |
REWRITE_TIME |
2274 |
消耗在查询重写上的时间总和(单位:微秒)。 |
PL_EXECUTION_TIME |
0 |
消耗在plpgsql执行上的时间总和(单位:微秒)。 |
PL_COMPILATION_TIME |
557 |
消耗在SQL编译上的时间总和(单位:微秒)。 |
NET_SEND_TIME |
1673 |
消耗在网络发送上的时间总和(单位:微秒)。 |
DATA_IO_TIME |
426622 |
消耗在数据读写上的时间总和(单位:微秒)。 |
DBE_PERF.get_global_instance_time()
描述:提供整个集群各个关键阶段的时间消耗,仅在CN上支持查询。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
get_instr_unique_sql()
描述:获取当前节点的执行语句(归一化SQL)信息,查询该函数必须具有SYSADMIN权限或者MONADMIN权限。函数返回信息具体字段请参见STATEMENT。
返回值类型:record
get_instr_wait_event(integer)
描述:获取当前节点event等待的统计信息。
返回值类型:record
get_instr_user_login()
描述:获取当前节点的用户登录或者退出登录次数信息,查询该函数必须具有SYSADMIN或者MONADMIN权限。
返回值类型:record
get_instr_rt_percentile(integer)
描述:获取CCN节点SQL 响应时间P80、P95分布信息,集群统一的信息在CCN节点上,其他节点查询为0。
返回值类型:record
get_node_stat_reset_time()
描述:获取当前节点的统计信息重置(重启,主备倒换,数据库删除)时间。
返回值类型:record
gs_paxos_stat_replication()
描述:在主机端查询备机信息。
返回值类型:setof record
返回字段说明如下:
字段名称 |
字段类型 |
字段说明 |
---|---|---|
local_role |
text |
发送日志节点的角色。 |
peer_role |
text |
接收日志节点的角色。 |
local_dcf_role |
text |
发送日志节点的DCF角色。 |
peer_dcf_role |
text |
接收日志节点的DCF角色。 |
peer_state |
text |
接收日志节点的状态。 |
sender_write_location |
text |
发送日志节点写到xlog buffer的位置。 |
sender_commit_location |
text |
发送日志节点DCF日志达成一致性点。 |
sender_flush_location |
text |
发送日志节点写到xlog disk的位置。 |
sender_replay_location |
text |
发送日志节点replay的位置。 |
receiver_write_location |
text |
接收日志节点写到xlog buffer的位置。 |
receiver_commit_location |
text |
接收日志节点DCF日志达成一致性点。 |
receiver_flush_location |
text |
接收日志节点写到xlog disk的位置。 |
receiver_replay_location |
text |
接收日志节点重演xlog的位置。 |
sync_percent |
text |
同步百分比。 |
dcf_run_mode |
int4 |
DCF同步模式。 |
channel |
text |
信道信息。 |
gs_wlm_get_user_info(int)
描述:获取所有用户的相关信息,入参为int类型,可以为任意int值或NULL。该函数只有SYSADMIN权限的用户可以执行。
返回值类型:record
gs_wlm_readjust_user_space(oid)
描述:修正所有用户的存储空间使用情况。该函数只有管理员用户可以执行。
返回值类型:record
gs_wlm_readjust_user_space_through_username(text name)
描述:修正指定用户的存储空间使用情况。该函数普通用户只能修正自己的使用情况,只有管理员用户可以修正所有用户的使用情况。当name指定为“0000”,表示需要修正所有用户的使用情况。
返回值类型:record
gs_wlm_readjust_user_space_with_reset_flag(text name, boolean isfirst)
描述:修正指定用户的存储空间使用情况。入参isfirst为true表示从0开始统计,否则从上一次结果继续统计。普通用户只能修正自己的使用情况,只有管理员用户可以修正所有用户的使用情况。当name指定为“0000”,表示需要修正所有用户的使用情况。
返回值类型:record
gs_io_wait_status()
描述:返回当前节点I/O管控的实时统计信息。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
node_name |
text |
节点名称。 |
device_name |
text |
节点挂载的数据磁盘名称。 |
read_per_second |
float |
读完成每秒次数。 |
write_per_second |
float |
写完成每秒次数。 |
write_ratio |
float |
写磁盘占总的I/O使用的比例。 |
io_util |
float |
每秒I/O所占CPU总时间的百分比。 |
total_io_util |
integer |
过去三次I/O所占CPU总时间的等级(取值为0~6)。 |
tick_count |
integer |
更新磁盘IO信息的周期,固定为1秒,每次读取数据前都会被清零。 |
io_wait_list_len |
integer |
I/O请求线程等待队列的大小,若为0,则表示当前没有I/O被管控。 |
gs_get_shared_memctx_detail(text)
描述:返回指定内存上下文上的内存申请的详细信息,包含每一处内存申请所在的文件、行号和大小(同一文件同一行大小会进行累加)。只支持查询通过PG_SHARED_MEMORY_DETAIL视图查询出来的内存上下文,入参为内存上下文名称(即PG_SHARED_MEMORY_DETAIL返回结果的contextname列)。查询该函数需要具有SYSADMIN权限或者MONADMIN权限。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
file |
text |
申请内存所在文件的文件名。 |
line |
int8 |
申请内存所在文件的代码行号。 |
size |
int8 |
申请的内存大小,同一文件同一行多次申请会进行累加。 |
gs_get_session_memctx_detail(text)
描述:返回指定内存上下文上的内存申请的详细信息,包含每一处内存申请所在的文件、行号和大小(同一文件同一行大小会进行累加)。仅在线程池模式下生效。且只支持查询通过PV_SESSION_MEMORY_CONTEXT视图查询出来的内存上下文,入参为内存上下文名称(即PV_SESSION_MEMORY_CONTEXT返回结果的contextname列)。查询该函数需要具有SYSADMIN权限或者MONADMIN权限。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
file |
text |
申请内存所在文件的文件名。 |
line |
int8 |
申请内存所在文件的代码行号。 |
size |
int8 |
申请的内存大小,单位为byte,同一文件同一行多次申请会进行累加。 |
该视图仅在线程池模式下生效。
gs_get_thread_memctx_detail(tid,text)
描述:返回指定内存上下文上的内存申请的详细信息,包含每一处内存申请所在的文件、行号和大小(同一文件同一行大小会进行累加)。只支持查询通过PV_THREAD_MEMORY_CONTEXT视图查询出来的内存上下文,第一个入参为线程id(即PV_THREAD_MEMORY_CONTEXT返回数据的tid列),第二个参数为内存上下文名称(即PV_THREAD_MEMORY_CONTEXT返回数据的contextname列)。查询该函数必须具有SYSADMIN权限或者MONADMIN权限。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
file |
text |
申请内存所在文件的文件名。 |
line |
int8 |
申请内存所在文件的代码行号。 |
size |
int8 |
申请的内存大小,单位为byte,同一文件同一行多次申请会进行累加。 |
gs_get_history_memory_detail(cstring)
描述:查询历史内存快照信息,入参类型为cstring,取值为NULL或内存快照log文件名称:
- 若入参为NULL,则显示当前节点所有的内存快照log文件列表。
- 若入参为1查询到的列表中的内存快照log名称,则显示该log文件记录的内存快照详细信息。
- 若输入其他入参,则会提示入参错误或打开文件失败。
查询该函数必须具有SYSADMIN权限或者MONADMIN权限。
返回值类型:text
名称 |
类型 |
描述 |
---|---|---|
memory_info |
text |
内存信息,如果函数入参为NULL,该列显示内存快照文件列表信息;入参为内存快照文件名称,则显示该文件的具体内容。 |
gs_stat_get_hotkeys_info()
若GUC参数enable_hotkeys_collection = off, gs_stat_get_hotkeys_info、global_stat_get_hotkeys_info函数和global_stat_hotkeys_info视图无法正常查询。不影响gs_stat_clean_hotkeys和global_stat_clean_hotkeys清理接口的正常使用。
描述:获取当前节点上热点key的统计情况。
返回值类型: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)
|
名称 |
类型 |
描述 |
---|---|---|
database_name |
text |
热点key所在database名称。 |
schema_name |
text |
热点key所在schema名称。 |
table_name |
text |
热点key所在table名称。 |
key_value |
text |
热点key的value。 |
hash_value |
bigint |
热点key在数据库中的哈希值,如果是List/Range分布表,该字段为0。 |
count |
bigint |
热点key被访问频次。 |
gs_stat_clean_hotkeys()
- 热点key检测是针对大并发大流量场景设计的特性,访问几次的场景,查询清理会存在一定误差。
- 在设计清理接口时,只会清理LRU队列中的统计数据,而不会清理FIFO队列中的历史数据。因此,如果在清理完成后再次访问FIFO中存在的历史键值,这些键值仍会被当做热点key处理。global_stat_clean_hotkeys同理。
描述:清理当前节点上热点key的统计信息。
返回值: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()
执行业务过程中,执行SELECT * FROM global_stat_hotkeys_info MINUS SELECT * FROM global_stat_get_hotkeys_info();因为存在时间差,可能出现不为0的情况。
描述:获取整个集群中热点key的统计情况。
返回值类型: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()
描述:清理整个集群中热点key的统计信息。
返回值: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()
描述:获取所有DN节点上所有的通信库接收流状态。函数返回信息具体字段请参见PG_COMM_RECV_STREAM。
返回值类型:record
global_comm_get_send_stream()
描述:获取所有DN节点上所有的通信库发送流状态。函数返回信息具体字段请参见PG_COMM_SEND_STREAM。
返回值类型:record
pgxc_stat_activity()
描述:显示当前集群下所有CN的当前用户查询相关的信息,仅具有SYSADMIN或者MONADMIN权限的用户可以执行此函数,普通用户可查看本用户的相关信息。505.0.0版本新增三列信息,灰度升级观察期中执行该函数会报错,此时,需使用PG_STAT_ACTIVITY直连目标节点进行查询。
返回值类型:record
名称 |
类型 |
描述 |
---|---|---|
coorname |
text |
当前集群下的CN名称。 |
datid |
oid |
用户会话在后台连接到的数据库OID。 |
datname |
text |
用户会话在后台连接到的数据库名称。 |
pid |
bigint |
后台线程ID。 |
sessionid |
bigint |
会话ID。 |
usesysid |
oid |
登录该后台的用户OID。 |
usename |
text |
登录该后台的用户名。 |
application_name |
text |
连接到该后台的应用名。 |
client_addr |
inet |
连接到该后台的客户端的IP地址。如果此字段是null,表示客户端是通过服务器上的UNIX套接字连接的,或者是内部线程,例如autovacuum。 |
client_hostname |
text |
客户端的主机名,这个字段是通过client_addr进行反向DNS查找得到的。这个字段只有在启动log_hostname且使用IP连接时才非空。 |
client_port |
integer |
客户端用于与后台通讯的TCP端口号,如果使用Unix套接字,则为-1。 |
backend_start |
timestamp with time zone |
该过程开始的时间,即当客户端连接服务器的时间。 |
xact_start |
timestamp with time zone |
启动当前事务的时间,如果没有事务是活跃的,则为null。如果当前查询是首个事务,则这列等同于query_start列。 |
query_start |
timestamp with time zone |
开始当前活跃查询的时间,如果state的值不是active,则这个值是上一个查询的开始时间。 |
state_change |
timestamp with time zone |
上次状态改变的时间。 |
waiting |
boolean |
如果后台当前正等待锁则为true。 |
enqueue |
text |
语句当前排队状态。可能值是:
|
state |
text |
该后台当前总体状态。可能值是:
只有系统管理员能查看到自己账户所对应的会话状态。其他账户的state信息为空。例如以judy用户连接数据库后,在PGXC_STAT_ACTIVITY中查看到的普通用户joe及初始用户omm的state信息为空: 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 |
用户使用的资源池。 |
query_id |
bigint |
查询语句的ID。 |
query |
text |
该后台的最新查询。如果state状态是active(活跃的),此字段显示当前正在执行的查询。所有其他情况表示上一个查询。 |
global_sessionid |
text |
全局会话ID。 |
unique_sql_id |
bigint |
语句的unique sql id。 |
trace_id |
text |
驱动传入的trace id,与应用的一次请求相关联。 |
top_xid |
xid |
事务的顶层事务ID。 |
current_xid |
xid |
事务的当前事务ID。 |
xlog_quantity |
bigint |
事务当前使用的XLOG量,单位为字节。 |
pgxc_stat_activity_with_conninfo()
描述:显示当前集群下所有CN的当前用户查询相关的信息,返回值定义参考PGXC_STAT_ACTIVITY视图。仅具有SYSADMIN或者MONADMIN权限的用户可以执行此函数,普通用户只能查看与其自身相关的信息。
返回值类型:record
pgxc_stat_all_tables()
描述:显示各节点数据中每个表(包括TOAST表)的一行的统计信息,仅具有SYSADMIN或者MONADMIN权限的用户可以执行此函数。
返回值类型:record
pgxc_get_thread_wait_status()
描述:查看集群各个节点上所有SQL语句产生的线程之间的调用层次关系,以及各个线程的阻塞等待状态。
返回值类型:record
pv_session_memory
描述:统计Session级别的内存使用情况,包含执行作业在数据节点上GaussDB线程和Stream线程分配的所有内存。
若GUC参数enable_memory_limit=off,该函数不能使用。
返回值类型:record
名称 |
类型 |
描述 |
---|---|---|
sessid |
text |
线程启动时间+线程标识。 |
init_mem |
integer |
当前正在执行作业进入执行器前已分配的内存,单位MB。 |
used_mem |
integer |
当前正在执行作业已分配的内存,单位MB。 |
peak_mem |
integer |
当前正在执行作业已分配的内存峰值,单位MB。 |
DBE_PERF.gs_stat_activity_timeout(int)
描述:获取当前节点上执行时间超过超时阈值的查询作业信息。需要GUC参数track_activities设置为on才能正确返回结果。超时阈值的取值范围是0~2147483。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
database |
name |
用户会话连接的数据库名称。 |
pid |
bigint |
后台线程ID。 |
sessionid |
bigint |
会话ID。 |
usesysid |
oid |
登录该后台的用户OID。 |
application_name |
text |
连接到该后台的应用名。 |
query |
text |
该后台正在执行的查询。 |
xact_start |
timestamptz |
启动当前事务的时间。 |
query_start |
timestamptz |
开始当前查询的时间。 |
query_id |
bigint |
查询语句ID。 |
DBE_PERF.global_stat_activity_timeout(int)
描述:获取当前系统(所有CN)中执行时间超过超时阈值的查询作业信息。需要GUC参数track_activities设置为on才能正确返回结果。超时阈值的取值范围是0~2147483。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
nodename |
text |
用户会话连接的coordinate node的名称。 |
database |
name |
用户会话连接的数据库名称。 |
pid |
bigint |
后台线程ID。 |
sessionid |
bigint |
会话ID。 |
usesysid |
oid |
登录该后台的用户OID。 |
application_name |
text |
连接到该后台的应用名。 |
query |
text |
该后台正在执行的查询。 |
xact_start |
timestamptz |
启动当前事务的时间。 |
query_start |
timestamptz |
开始当前查询的时间。 |
query_id |
bigint |
查询语句ID。 |
DBE_PERF.get_global_active_session()
描述:显示所有CN节点和主DN节点上的ACTIVE SESSION PROFILE内存中的样本的汇总。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。505.0版本新增event_start_time、current_xid和top_xid三个字段,当从低于505.0版本升级至505.0或更高版本时,升级观察期内无法查询这些新增字段。
返回值类型:record
DBE_PERF.get_global_os_runtime()
描述:显示当前操作系统运行的状态信息,仅在CN上支持查询。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_os_threads()
描述:提供整个集群中所有正常节点下的线程状态信息,仅在CN上支持查询。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_workload_sql_count()
描述:提供整个集群中不同负载SELECT、UPDATE、INSERT、DELETE、DDL、DML以及DCL的计数信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_workload_sql_elapse_time()
描述:提供整个集群中不同负载SELECT、UPDATE、INSERT和DELETE,响应时间信息(TOTAL、AVG、MIN、MAX)。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_workload_transaction()
描述:获取集群内所有节点上的事务量信息,事务时间信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_session_stat()
描述:获取集群内所有节点上的会话状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
状态信息有如下14项: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以及sort_idisk。
DBE_PERF.get_global_session_time()
描述:提供整个集群各节点各个关键阶段的时间消耗。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_session_memory()
描述:汇聚各节点的Session级别的内存使用情况,包含执行作业在数据节点上GaussDB线程和Stream线程分配的所有内存,单位为MB。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_session_memory_detail()
描述:汇聚各节点的线程的内存使用情况,以MemoryContext节点来统计。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_session_stat_activity()
描述:汇聚集群内各节点上正在运行的线程相关的信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_thread_wait_status()
描述:汇聚所有节点上工作线程(backend thread)以及辅助线程(auxiliary thread)的阻塞等待情况。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_operator_history_table()
描述:汇聚当前用户所有CN上执行作业结束后的算子相关记录(持久化)。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_operator_history()
描述:汇聚当前用户所有CN上执行作业结束后的算子相关记录。集群创建后的默认情况下,查询该函数必须具有MONADMIN和SYSADMIN权限。
返回值类型:record
DBE_PERF.get_global_operator_runtime()
描述:汇聚当前用户所有CN上执行作业实时的算子相关记录。集群创建后的默认情况下,查询该函数必须具有MONADMIN和SYSADMIN权限。
返回值类型:record
DBE_PERF.get_global_statement_complex_history()
描述:汇聚当前用户所有CN节点上复杂查询的历史记录。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record。
DBE_PERF.get_global_statement_complex_history_table()
描述:汇聚当前用户所有CN节点上复杂查询的历史记录(持久化)。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_statement_complex_runtime()
描述:汇聚当前用户所有CN节点上复杂查询的实时信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN和SYSADMIN权限。
返回值类型:record
DBE_PERF.get_global_memory_node_detail()
描述:汇聚某个数据库在所有节点上的内存使用情况。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_shared_memory_detail()
描述:汇聚所有节点已产生的共享内存上下文的使用信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_comm_delay()
描述:汇聚所有DN节点的通信库时延状态。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_comm_recv_stream()
描述:汇聚所有DN节点的通信库接收流状态。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_comm_send_stream()
描述:汇聚所有DN节点的通信库发送流状态。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_comm_status()
描述:汇聚所有DN节点的通信库状态。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_statio_all_indexes()
描述:汇聚所有节点当前数据库中的索引信息及I/O统计量。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_local_toastname_and_toastindexname()
描述:提供本地toast表的name和index及其关联表的对应关系。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_statio_all_indexes()
描述:统计所有节点当前数据库中的每个索引行,显示特定索引的I/O统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_statio_all_sequences()
描述:提供命名空间中所有sequences的IO状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_statio_all_tables()
描述:汇聚各节点的数据库中每个表I/O的统计。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_statio_all_tables()
描述:统计集群内数据库中每个表I/O的统计。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_local_toast_relation()
描述:提供本地toast表的name及其关联表的对应关系。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_statio_sys_indexes()
描述:汇聚各节点的命名空间中所有系统表索引的IO状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_statio_sys_indexes()
描述:统计各节点的命名空间中所有系统表索引的IO状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_statio_sys_sequences()
描述:提供命名空间中所有系统表为sequences的IO状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_statio_sys_tables()
描述:提供各节点的命名空间中所有系统表的IO状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_statio_sys_tables()
描述:集群内汇聚命名空间中所有系统表的IO状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_statio_user_indexes()
描述:各节点的命名空间中所有用户关系表索引的IO状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_statio_user_indexes()
描述:集群内汇聚命名空间中所有用户关系表索引的IO状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_statio_user_sequences()
描述:显示各节点的命名空间中所有用户的sequences的IO状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_statio_user_tables()
描述:显示各节点的命名空间中所有用户关系表的IO状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_statio_user_tables()
描述:集群内汇聚命名空间中所有用户关系表的IO状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_dn_stat_all_tables()
描述:汇聚DN节点数据库中每个表的统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_cn_stat_all_tables()
描述:汇聚CN节点数据库中每个表的统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_dn_stat_all_tables()
描述:统计DN节点数据库中每个表的统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_cn_stat_all_tables()
描述:统计CN节点数据库中每个表的统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_all_indexes()
描述:汇聚所有节点数据库中每个索引的统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_stat_all_indexes()
描述:统计所有节点数据库中每个索引的统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_sys_tables()
描述:汇聚各节点pg_catalog、information_schema模式的所有命名空间中系统表的统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_stat_sys_tables()
描述:统计各节点pg_catalog、information_schema模式的所有命名空间中系统表的统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_sys_indexes()
描述:汇聚各节点pg_catalog、information_schema模式中所有系统表的索引状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_stat_sys_indexes()
描述:统计各节点pg_catalog、information_schema模式中所有系统表的索引状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_user_tables()
描述:汇聚所有命名空间中用户自定义普通表的状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_stat_user_tables()
描述:统计所有命名空间中用户自定义普通表的状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_user_indexes()
描述:汇聚所有数据库中用户自定义普通表的索引状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_stat_user_indexes()
描述:统计所有数据库中用户自定义普通表的索引状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_database()
描述:汇聚所有节点数据库统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_database_conflicts()
描述:统计所有节点数据库统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_xact_all_tables()
描述:汇聚命名空间中所有普通表和toast表的事务状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_stat_xact_all_tables()
描述:统计命名空间中所有普通表和toast表的事务状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_xact_sys_tables()
描述:汇聚所有节点命名空间中系统表的事务状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_stat_xact_sys_tables()
描述:统计所有节点命名空间中系统表的事务状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_xact_user_tables()
描述:汇聚所有节点命名空间中用户表的事务状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_stat_xact_user_tables()
描述:统计所有节点命名空间中用户表的事务状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_user_functions()
描述:汇聚所有节点命名空间中用户定义函数的事务状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_xact_user_functions()
描述:统计所有节点命名空间中用户定义函数的事务状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_stat_bad_block()
描述:汇聚所有节点表、索引等文件的读取失败信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_file_redo_iostat()
描述:统计所有节点表、索引等文件的读取失败信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_file_iostat()
描述:汇聚所有节点数据文件IO的统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_locks()
描述:汇聚所有节点的锁信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_replication_slots()
描述:汇聚所有节点上逻辑复制信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.GET_GLOBAL_PARALLEL_DECODE_STATUS()
描述:汇聚集群所有主DN节点上的复制槽的并行解码信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。该函数仅限CN上执行,DN上执行报错。返回值同视图GLOBAL_PARALLEL_DECODE_STATUS。
返回值类型:record
DBE_PERF.GET_GLOBAL_PARALLEL_DECODE_THREAD_INFO()
描述:汇聚集群所有主DN节点上的复制槽的并行解码线程信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。该函数仅限CN上执行,DN上执行报错。返回值同视图GLOBAL_PARALLEL_DECODE_THREAD_INFO。
返回值类型:record
DBE_PERF.get_global_bgwriter_stat()
描述:汇聚所有节点后端写线程活动的统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_replication_stat()
描述:汇聚各节点日志同步状态信息,如发起端发送日志位置,接收端接收日志位置等。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_pooler_status()
描述:汇聚所有CN节点的pooler中的缓存连接状态。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_transactions_running_xacts()
描述:汇聚各节点运行事务的信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_transactions_running_xacts()
描述:统计各节点运行事务的信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_transactions_prepared_xacts()
描述:汇聚各节点当前准备好进行两阶段提交的事务的信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_transactions_prepared_xacts()
描述:统计各节点当前准备好进行两阶段提交的事务的信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_statement()
描述:汇聚各节点历史执行语句状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。函数返回信息具体字段请参见SUMMARY_STATEMENT。
返回值类型:record
DBE_PERF.get_global_statement_count()
描述:汇聚各节点SELECT、UPDATE、INSERT、DELETE,响应时间信息(TOTAL、AVG、MIN、MAX)。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_config_settings()
描述:汇聚各节点GUC参数配置信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_wait_events()
描述:汇聚各节点wait events状态信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_statement_responsetime_percentile()
描述:获取集群SQL响应时间P80,P95分布信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_summary_user_login()
描述:统计集群各节点用户登录或者退出登录次数信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.get_global_record_reset_time()
描述:汇聚集群统计信息重置(重启,主备倒换,数据库删除)时间。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.standby_statement_history(only_slow[, time1, time2])
描述:备机中用来查询FULL SQL记录的函数,主机通过表statement_history进行查询,备机通过此函数进行查询。查询该函数必须具有MONADMIN权限。函数返回信息具体字段请参见STATEMENT_HISTORY。
参数:如表9 standby_statement_history参数说明所示。
返回值类型:record
参数 |
类型 |
描述 |
---|---|---|
only_slow |
boolean |
是否仅查询慢SQL。
|
time1 |
timestamptz |
可选输入,表示查询SQL的finish_time的最小时间。 |
time2 |
timestamptz |
可选输入,表示查询SQL的finish_time的最大时间。若time1>=time2,则函数执行报错。 |
- 两个时间参数time1、time2的说明:表示查询的SQL的finish_time所属时间段,分别表示起始与终止时间,输入NULL或者不输入表示没有限制,功能等同于SELECT ... WHERE finish_time BETWEEN time1 AND time2;。
- 备机上该功能的数据并非存储在表里,不存在start_time列的索引,推荐使用参数对finish_time进行条件查找。
- 由于备机Full/Slow SQL采用异步存储方式,所以用户SQL信息存储时刻可能有所滞后,建议客户查询此接口适当扩大时间查询范围。
DBE_PERF.global_io_wait_info()
描述:查询所有CN和DN节点上的IO管控的实时统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
pg_stat_get_mem_mbytes_reserved(tid)
描述:统计资源管理相关变量值,仅用于定位问题使用。
参数:线程id
返回值类型:text
pg_stat_get_file_stat()
描述:通过对数据文件I/O的统计,反映数据的I/O性能,用以发现I/O操作异常等性能问题。
返回值类型:record
pg_stat_get_redo_stat()
描述:用于统计会话线程日志回放情况。
返回值类型:record
pg_stat_get_status(int8)
描述:可以检测当前实例中工作线程(backend thread)以及辅助线程(auxiliary thread)的阻塞等待情况。
返回值类型:record
get_local_rel_iostat()
描述:查询当前节点的数据文件I/O状态累计值。
返回值类型:record
DBE_PERF.get_global_rel_iostat()
描述:汇聚所有节点数据文件I/O的统计信息。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
pg_catalog.plancache_status()
描述:显示在当前节点上的全局计划缓存的状态信息。函数返回信息和GLOBAL_PLANCACHE_STATUS一致。
返回值类型:record
DBE_PERF.global_plancache_status()
描述:显示在所有节点上的全局计划缓存的状态信息。函数返回信息请参见字段GLOBAL_PLANCACHE_STATUS。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
DBE_PERF.global_threadpool_status()
描述:显示在所有节点上的线程池中工作线程及会话的状态信息。函数返回信息请参见18.7.14-表 GLOBAL_THREADPOOL_STATUS。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
返回值类型:record
comm_check_connection_status()
描述:返回该CN和所有活跃节点(CN和主DN)的连接情况。该函数仅支持在CN上查询,普通用户可使用。
参数:nan
返回值类型:node_name text、remote_name text、remote_host text、remote_port integer、is_connected boolean以及no_error_occur boolean。
DBE_PERF.global_comm_check_connection_status()
描述:返回所有CN和所有活跃节点(CN和主DN)的连接情况。该函数仅支持在CN上查询,权限控制继承DBE_PERF schema。集群创建后的默认情况下,查询该函数必须具有MONADMIN权限。
参数:nan
返回值类型:node_name text、remote_name text、remote_host text、remote_port integer、is_connected boolean以及no_error_occur boolean。
remote_candidate_stat()
描述:显示本实例的候选buffer链中页面个数,buffer淘汰信息,包含normal buffer pool和segment buffer pool。
返回值类型:record
名称 |
类型 |
描述 |
---|---|---|
node_name |
text |
节点名称。 |
candidate_slots |
integer |
当前Normal Buffer Pool候选buffer链中页面个数。 |
get_buf_from_list |
bigint |
Normal Buffer Pool,buffer淘汰从候选buffer链中获取页面的次数。 |
get_buf_clock_sweep |
bigint |
Normal Buffer Pool,buffer淘汰从原淘汰方案中获取页面的次数。 |
seg_candidate_slots |
integer |
当前Segment Buffer Pool候选buffer链中页面个数。 |
seg_get_buf_from_list |
bigint |
Segment Buffer Pool,buffer淘汰从候选buffer链中获取页面的次数。 |
seg_get_buf_clock_sweep |
bigint |
Segment Buffer Pool,buffer淘汰从原淘汰方案中获取页面的次数。 |
remote_ckpt_stat()
描述:用于显示整个集群所有实例的检查点信息和各类日志刷页情况(本节点除外、DN上不可使用)。
返回值类型:record
参数 |
类型 |
描述 |
---|---|---|
node_name |
text |
实例名称。 |
ckpt_redo_point |
text |
当前实例的检查点。 |
ckpt_clog_flush_num |
int8 |
从启动到当前时间clog刷盘页面数。 |
ckpt_csnlog_flush_num |
int8 |
从启动到当前时间csnlog刷盘页面数。 |
ckpt_multixact_flush_num |
int8 |
从启动到当前时间multixact刷盘页面数。 |
ckpt_predicate_flush_num |
int8 |
从启动到当前时间predicate刷盘页面数。 |
ckpt_twophase_flush_num |
int8 |
从启动到当前时间twophase刷盘页面数。 |
remote_double_write_stat()
描述:显示整个集群所有实例的双写文件的情况(本节点除外、DN上不可使用)。
返回值类型:record
参数 |
类型 |
描述 |
---|---|---|
node_name |
text |
实例名称。 |
curr_dwn |
int8 |
当前双写文件的序列号。 |
curr_start_page |
int8 |
当前双写文件恢复起始页面。 |
file_trunc_num |
int8 |
当前双写文件复用的次数。 |
file_reset_num |
int8 |
当前双写文件写满后发生重置的次数。 |
total_writes |
int8 |
当前双写文件总的I/O次数。 |
low_threshold_writes |
int8 |
低效率写双写文件的I/O次数(一次I/O刷页数量少于16页面)。 |
high_threshold_writes |
int8 |
高效率写双写文件的I/O次数(一次I/O刷页数量多于一批,421个页面)。 |
total_pages |
int8 |
当前刷页到双写文件区的总的页面个数。 |
low_threshold_pages |
int8 |
低效率刷页的页面个数。 |
high_threshold_pages |
int8 |
高效率刷页的页面个数。 |
file_id |
int8 |
当前双写文件的id号。 |
remote_single_flush_dw_stat()
描述:显示整个集群所有实例的单页面淘汰双写文件的情况(本节点除外、DN上不可使用)。
返回值类型:record
参数 |
类型 |
描述 |
---|---|---|
node_name |
text |
实例名称。 |
curr_dwn |
integer |
当前双写文件的序列号。 |
curr_start_page |
integer |
当前双写文件start位置。 |
total_writes |
bigint |
当前双写文件总计写数据页面个数。 |
file_trunc_num |
bigint |
当前双写文件复用的次数。 |
file_reset_num |
bigint |
当前双写文件写满后发生重置的次数。 |
remote_pagewriter_stat()
描述:显示整个集群所有实例的刷页信息和检查点信息(本节点除外、DN上不可使用)。
返回值类型:record
参数 |
类型 |
描述 |
---|---|---|
node_name |
text |
实例名称。 |
pgwr_actual_flush_total_num |
int8 |
从启动到当前时间总计刷脏页数量。 |
pgwr_last_flush_num |
int4 |
上一批刷脏页数量。 |
remain_dirty_page_num |
int8 |
当前预计还剩余多少脏页。 |
queue_head_page_rec_lsn |
text |
当前实例的脏页队列第一个脏页的recovery_lsn。 |
queue_rec_lsn |
text |
当前实例的脏页队列的recovery_lsn。 |
current_xlog_insert_lsn |
text |
当前实例XLog写入的位置。 |
ckpt_redo_point |
text |
当前实例的检查点。 |
remote_recovery_status()
描述:显示关于主机和备机的日志流控信息(本节点除外、DN上不可使用)。
返回值类型:record
参数 |
类型 |
描述 |
---|---|---|
node_name |
text |
节点的名称,包含主机和备机。 |
standby_node_name |
text |
备机名称。 |
source_ip |
text |
主机的IP地址。 |
source_port |
int4 |
主机的端口号。 |
dest_ip |
text |
备机的IP地址。 |
dest_port |
int4 |
备机的端口号。 |
current_rto |
int8 |
备机当前的日志流控时间,单位秒。 |
target_rto |
int8 |
备机通过GUC参数设置的预期流控时间,单位秒。 |
current_sleep_time |
int8 |
为了达到这个预期主机所需要的睡眠时间,单位微秒。 |
remote_rto_stat()
描述:显示关于主机和备机的日志流控信息(本节点除外、DN上不可使用)。
返回值类型:record
参数 |
类型 |
描述 |
---|---|---|
node_name |
text |
节点的名称,包含主机和备机。 |
rto_info |
text |
流控的信息,包含了备机当前的日志流控时间(单位:秒),备机通过GUC参数设置的预期流控时间(单位:秒),为了达到这个预期主机所需要的睡眠时间(单位:微秒)。 |
remote_redo_stat()
描述:显示整个集群所有实例的日志回放情况(本节点除外、DN上不可使用)。
返回值类型:record
参数 |
类型 |
描述 |
---|---|---|
node_name |
text |
实例名称。 |
redo_start_ptr |
int8 |
当前实例日志回放的起始点。 |
redo_start_time |
int8 |
当前实例日志回放的起始UTC时间。 |
redo_done_time |
int8 |
当前实例日志回放的结束UTC时间。 |
curr_time |
int8 |
当前实例的当前UTC时间。 |
min_recovery_point |
int8 |
当前实例日志的最小一致性点位置。 |
read_ptr |
int8 |
当前实例日志的读取位置。 |
last_replayed_read_ptr |
int8 |
当前实例的日志回放位置。 |
recovery_done_ptr |
int8 |
当前实例启动完成时的回放位置。 |
read_xlog_io_counter |
int8 |
当前实例读取回放日志的I/O次数计数。 |
read_xlog_io_total_dur |
int8 |
当前实例读取回放日志的I/O总时延。 |
read_data_io_counter |
int8 |
当前实例回放过程中读取数据页面的I/O次数计数。 |
read_data_io_total_dur |
int8 |
当前实例回放过程中读取数据页面的I/O总时延。 |
write_data_io_counter |
int8 |
当前实例回放过程中写数据页面的I/O次数计数。 |
write_data_io_total_dur |
int8 |
当前实例回放过程中写数据页面的I/O总时延。 |
process_pending_counter |
int8 |
当前实例回放过程中日志分发线程的同步次数计数。 |
process_pending_total_dur |
int8 |
当前实例回放过程中日志分发线程的同步总时延。 |
apply_counter |
int8 |
当前实例回放过程中回放线程的同步次数计数。 |
apply_total_dur |
int8 |
当前实例回放过程中回放线程的同步总时延。 |
speed |
int8 |
当前实例日志回放速率。 |
local_max_ptr |
int8 |
当前实例启动成功后本地收到的回放日志的最大值。 |
primary_flush_ptr |
int8 |
主机日志文件写入磁盘的位置。 |
worker_info |
text |
当前实例回放线程信息,若没有开并行回放则该值为空。 |
pgxc_gtm_snapshot_status()
描述:用于查看当前GTM上事务信息,仅在GTM模式下支持本系统函数,GTM-LITE和GTM-FREE模式下不支持。
返回值类型:record
名称 |
类型 |
描述 |
---|---|---|
xmin |
xid |
仍在运行的最小事务号。 |
xmax |
xid |
已完成的所有事务号中最大事务号的下一个事务号。 |
csn |
integer |
待提交事务的序列号。 |
oldestxmin |
xid |
当前最早的活跃事务在其取快照时,所有运行事务号最小的事务。 |
xcnt |
integer |
当前活跃的事务个数。 |
running_xids |
text |
当前活跃的事务号。 |
pv_session_stat()
描述:以会话线程或AutoVacuum线程为单位,统计会话状态信息,具体字段信息请参见PV_SESSION_STAT。
参数:nan
返回值类型:setof record
pg_stat_get_db_temp_bytes()
描述:统计通过数据库查询写入临时文件的数据总量。计算所有临时文件,不论其创建原因,并且不受log_temp_files设置的影响。
参数:oid
返回值类型:bigint
pg_stat_get_db_temp_files()
描述:通过数据库查询创建的临时文件数量。计算所有临时文件,不论其创建原因(比如排序或者哈希),并且不受log_temp_files设置的影响。
参数:oid
返回值类型:bigint
gs_prepared_statements()
描述:显示所有会话所有可用的预备语句。该函数需要SYSADMIN权限的用户才能够执行。函数返回信息具体的字段和GS_ALL_PREPARED_STATEMENTS字段一致。
返回值类型:record
local_redo_time_count()
描述:返回本节点各个回放线程的各个流程的耗时统计(仅在备机上有有效数据)。
字段名 |
描述 |
---|---|
thread_name |
线程名字。 |
step1_total |
step1的总时间,每个线程对应的流程如下: |
step1_count |
step1的统计次数。 |
step2_total |
step2的总时间,每个线程对应的流程如下: |
step2_count |
step2的统计次数。 |
step3_total |
step3的总时间,每个线程对应的流程如下: |
step3_count |
step3的统计次数。 |
step4_total |
step4的总时间,每个线程对应的流程如下: |
step4_count |
step4的统计次数。 |
step5_total |
step5的总时间,每个线程对应的流程如下: |
step5_count |
step5的统计次数。 |
step6_total |
step6的总时间,每个线程对应的流程如下: |
step6_count |
step6的统计次数。 |
step7_total |
step7的总时间,每个线程对应的流程如下: |
step7_count |
step7的统计次数。 |
step8_total |
step8的总时间,每个线程对应的流程如下: |
step8_count |
step8的统计次数。 |
step9_total |
step9的总时间,每个线程对应的流程如下: |
step9_count |
step9的统计次数。 |
local_xlog_redo_statics()
描述:返回本节点已回放的各个类型的日志统计信息(仅在备机上有有效数据)。
字段名 |
描述 |
---|---|
xlog_type |
日志类型。 |
rmid |
resource manager id。 |
info |
xlog operation。 |
num |
日志个数。 |
extra |
针对page回放日志和xact日志有有效值。
|
remote_bgwriter_stat()
描述:显示整个集群所有实例的bgwriter线程刷页信息,候选buffer链中页面个数,buffer淘汰信息(本节点除外、DN上不可使用)。
返回值类型:record
参数 |
类型 |
描述 |
---|---|---|
node_name |
text |
实例名称。 |
bgwr_actual_flush_total_num |
bigint |
从启动到当前时间bgwriter线程总计刷脏页数量。 |
bgwr_last_flush_num |
integer |
bgwriter线程上一批刷脏页数量。 |
candidate_slots |
integer |
当前候选buffer链中页面个数。 |
get_buffer_from_list |
bigint |
buffer淘汰从候选buffer链中获取页面的次数。 |
get_buf_clock_sweep |
bigint |
buffer淘汰从原淘汰方案中获取页面的次数。 |
示例:
remote_bgwriter_stat函数查询bgwriter线程刷页信息。
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()
描述:显示线程调用栈。查询该函数需要有SYSADMIN权限或者MONADMIN权限。
参数:tid,线程id。tid是可选参数,指定tid参数时,函数返回tid对应线程调用栈;当不指定tid参数时,函数返回所有线程的调用栈。
返回值:当指定tid时,返回值为text;当不指定tid时,返回值为setof record。
示例:
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)
|
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])
描述:采集当前节点上各个线程的on-cpu火焰图的堆栈调用数据,函数返回火焰图的存储路径。查询该函数需要有SYSADMIN权限或者MONADMIN权限。
参数说明如下:
参数名称 |
描述 |
类型 |
范围 |
---|---|---|---|
duration |
采集堆栈时长(单位为秒,如果输入浮点型数值,将对浮点型小数点后第一位进行四舍五入后取整处理)。 |
integer |
1~60 |
freq |
采集堆栈频率(可选参数,单位为HZ,默认为100,如果输入浮点型数值,将会对浮点型小数点后第一位进行四舍五入后取整处理)。 |
integer |
10~1000 |
返回值类型:text
示例:
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)
|
执行该函数时(包括后述gs_perf_start_offcpu()、gs_perf_start_all()、gs_perf_start_detail())需要确保gs_perf_service正常运行。同时,gs_perf_service在采集过程中,需要申请环形buffer,该buffer的大小由操作系统中/proc/sys/kernel/perf_event_mlock_kb控制。如果在采集过程中出现“perf mmap failed”错误,可以在调整/proc/sys/kernel/perf_event_mlock_kb的大小后,再重新执行采集。
gs_perf_start_offcpu(duration integer)
描述:采集当前节点上各个线程的off-cpu火焰图的堆栈调用数据,函数返回火焰图的存储路径。查询该函数需要有SYSADMIN权限或者MONADMIN权限。
参数说明如下:
参数名称 |
描述 |
类型 |
范围 |
---|---|---|---|
duration |
采集堆栈时长(单位为毫秒,如果输入浮点型数值,将对浮点型小数点后第一位进行四舍五入后取整处理)。 |
integer |
50~3000 |
返回值类型:text
示例:
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])
描述:采集当前节点所在机器上所有cpu核心所有线程中on-cpu/off-cpu堆栈的调用栈详细信息,函数返回多核多线程原始数据压缩文件地址。每次运行该命令时,都会删除历史采集的多核多线程数据。查询该函数需要有SYSADMIN权限或者MONADMIN权限。
参数说明如下:
参数名称 |
描述 |
类型 |
范围 |
---|---|---|---|
duration |
采集堆栈时长(单位为毫秒,如果输入浮点型数值,将对浮点型小数点后第一位进行四舍五入后取整处理)。 |
integer |
50~3000 |
freq |
采集堆栈频率(可选参数,单位为HZ,默认为100,如果输入浮点型数值,将对浮点型小数点后第一位进行四舍五入后取整处理)。 |
integer |
10~1000 |
返回值类型:text
示例:
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])
描述:采集当前节点所在机器上所有节点中on-cpu/off-cpu火焰图的堆栈调用数据,函数返回所有节点生成的火焰图文件的存储路径。查询该函数需要有SYSADMIN权限或者MONADMIN权限。
参数说明如下:
参数名称 |
描述 |
类型 |
范围 |
---|---|---|---|
duration |
采集堆栈时长(单位为毫秒,如果输入浮点型数值,将对浮点型小数点后第一位进行四舍五入后取整处理)。 |
integer |
50~3000 |
freq |
采集堆栈频率(可选参数,单位为HZ,默认为100,如果输入浮点型数值,将对浮点型小数点后第一位进行四舍五入后取整处理)。 |
integer |
10~1000 |
返回值类型:text
示例:
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()
描述:查看当前节点上保存的on-cpu/off-cpu火焰图的采集数据,不会展示多核多线程火焰图记录。
参数:nan
返回值类型:setof record
函数返回字段说明:
名称 |
类型 |
描述 |
---|---|---|
nodename |
text |
采集节点名称。 |
filename |
text |
采集数据所保存的文件名称。 |
collect_type |
text |
采集类型。 |
示例:
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])
描述:查询历史采集on-cpu/off-cpu火焰图的堆栈调用数据。函数归并各个线程的函数调用栈,并求和函数运行时间,返回聚集后的结果。查询该函数需要有SYSADMIN权限或者MONADMIN权限。
参数说明如下:
参数名称 |
描述 |
类型 |
---|---|---|
filename |
历史采集的文件的名称(可选参数,默认为最近一次手动采集的火焰图)。 |
text |
返回值类型:setof record
函数返回字段说明:
名称 |
类型 |
描述 |
---|---|---|
backtrace |
text |
堆栈名称(带树状结构)。 |
period |
bigint |
堆栈的执行时间。 |
level |
integer |
堆栈所在堆栈调用树的层级。 |
sequence |
integer |
堆栈调用树排序后的顺序。 |
thread_name |
text |
该堆栈所在的线程名称。 |
overhead |
float |
该堆栈执行所占时间百分比。 |
示例:
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])
描述:查询历史采集on-cpu/off-cpu火焰图的堆栈调用函数的占比数据,由于计算精度原因,该占比数据总和可能会不等于1。查询该函数需要有SYSADMIN权限或者MONADMIN权限。
参数说明如下:
参数名称 |
描述 |
类型 |
---|---|---|
filename |
历史采集的文件的名称(可选参数,默认为最近一次手动采集的火焰图)。 |
text |
返回值类型:setof record
函数返回字段说明:
名称 |
类型 |
描述 |
---|---|---|
function_name |
text |
堆栈函数名称。 |
percentage |
float |
堆栈函数调用占比。 |
示例:
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])
描述:查询历史采集on-cpu/off-cpu火焰图的堆栈函数调用占比及调用堆栈详细信息,由于计算精度原因,该占比数据总和可能会不等于1。查询该函数需要有SYSADMIN权限或者MONADMIN权限。
参数说明如下:
参数名称 |
描述 |
类型 |
---|---|---|
filename |
历史采集的文件的名称(可选参数,默认为最近一次手动采集的火焰图)。 |
text |
返回值类型:setof record
函数返回字段说明:
名称 |
类型 |
描述 |
---|---|---|
function_name |
text |
堆栈函数名称。 |
percentage |
float |
堆栈函数调用占比。 |
function_callstack |
text |
堆栈函数调用栈。 |
function_callstack_percentage |
float |
堆栈函数调用栈占比。 |
示例:
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()
描述:描述语句的运行时信息,SYSADMIN和MONADMIN用户执行则显示全部正在执行的语句的信息,普通用户查询只能查询自己执行的SQL语句的信息。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
db_oid |
oid |
用户会话在后台连接到的数据库OID。 |
db_name |
name |
用户会话在后台连接到的数据库名称。 |
threadpool_worker |
varchar |
线程所属的numagroup和线程的ID,格式如下:numagroup_threadid。 |
thread_id |
bigint |
线程ID。 |
session_id |
bigint |
会话ID。 |
query_id |
bigint |
正在执行的SQL语句的ID。 |
query_text |
text |
正在执行的SQL语句内容。 |
unique_sql_id |
bigint |
SQL语句生成的唯一id。 |
client_hostname |
text |
客户端的主机名,这个字段是通过client_addr进行反向DNS查找得到的。这个字段只有在启动log_hostname且使用IP连接时才非空。 |
client_app_name |
text |
客户端app的名字。 |
stmt_slow_time_threshold |
int |
单位毫秒,SQL语句被标记为慢SQL的预设超时时间。 |
stmt_start_time |
timestamp with time zone |
语句执行的开始时间。 |
stmt_elapse_time |
int |
距离查询开始执行时已经过去的时间。 |
stmt_control_status |
varchar |
当前语句状态:
|
stmt_control_rule |
text |
当前语句对应的慢SQL管控规则。 |
stmt_control_iostat |
text |
当前语句的iops值和最大iops上限。格式如下:curVal/maxVal。 |
stmt_control_memstat |
text |
当前字段预留,暂不支持。 |
stmt_control_cpustat |
text |
当前字段预留,暂不支持。 |
stmt_control_netstat |
text |
当前字段预留,暂不支持。 |
gs_tpworker_execslot_stat()
描述:描述线程的运行时信息,SYSADMIN和MONADMIN用户执行则显示全部线程的信息,普通用户查询只能查询自己执行的SQL语句所在的线程的信息。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
numagroup |
int |
当前线程所属的numagroup。 |
worker_id |
int |
当前线程的ID。 |
worker_bind_type |
text |
线程绑定方式,包括numabind、cpubind、allbind以及nobind。 |
worker_cpu_affinity |
text |
线程和CPU的亲和性,即线程可以调度的cpu核数范围。 |
worker_status |
varchar |
当前线程状态:
|
served_query_id |
bigint |
正在执行的SQL语句的ID。 |
served_query_text |
text |
正在执行的SQL语句内容。 |
gs_session_all_settings(sessionid bigint)
描述:查询本节点上sessionid对应的session的全量GUC参数配置。该操作需要SYSADMIN或者MONADMIN权限。
参数:sessionid,会话ID。
返回值类型:setof record
函数返回字段说明如下:
名称 |
类型 |
描述 |
---|---|---|
name |
text |
参数名称。 |
setting |
text |
参数当前值。 |
unit |
text |
参数的隐式单位。 |
示例:
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()
描述:查询本节点上所有session的全量GUC参数配置。该操作需要SYSADMIN或者MONADMIN权限。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
sessionid |
bigint |
会话的ID。 |
pid |
bigint |
后端线程的ID。 |
name |
text |
参数名称。 |
setting |
text |
参数当前值。 |
unit |
text |
参数的隐式单位。 |
示例:
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()
描述:查询本节点上日志预解析线程最近一次启动,预解析日志的情况。该操作需要SYSADMIN权限。日志预解析线程通常在备DN双机复制链路断开时、由CM组件发送启动命令启动。如果日志预解析线程已经被启动,可以通过调用该函数查询最近一次的预解析状态。如果线程尚未启动,该函数将返回默认值。在容灾场景下,灾备集群的DN和CN会自动启动日志预解析线程。需要注意的是,CN仅在灾备集群中会启动日志预解析线程。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
preparser_term |
text |
最近一次预解析日志得到的最大term值。 |
preparser_start_time |
timestamptz |
最近一次预解析启动时间。 |
preparser_end_time |
timestamptz |
最近一次预解析结束时间。 |
preparser_start_location |
text |
最近一次预解析日志起始位置。 |
preparser_end_location |
text |
最近一次预解析日志结束位置。 |
preparser_total_bytes |
int8 |
最近一次预解析日志量,单位:byte。 |
preparser_speed |
int8 |
最近一次预解析速度,单位:byte/ms。 |
is_valid |
bool |
最近一次预解析结果是否可以用于选主。 |
启动日志预解析线程后的查询结果示例:
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)
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()
描述:查询standby_read/base_page,standby_read/block_info_meta,standby_read/lsn_info_meta文件夹中的文件总数和总大小。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
base_page_file_num |
xid |
bage_page_file的总数量。 |
base_page_total_size |
xid |
bage_page_file的总大小。 |
lsn_info_meta_file_num |
xid |
lsn_info_meta_file的总数量。 |
lsn_info_meta_total_size |
xid |
lsn_info_meta_file的总大小。 |
block_info_meta_file_num |
xid |
block_info_meta_file的总数量。 |
block_info_meta_total_size |
xid |
block_info_meta_file的总大小。 |
示例:
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()
描述:查询备机读新增的base page file、lsn info meta file和block info meta file三种类型的文件磁盘访问次数和访问总时延。连接备DN或灾备集群CN查询,其他情况查询结果为0。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
lsn_info_page_disk_read_counter |
int8 |
lsn info meta file的磁盘访问次数。 |
lsn_info_page_disk_read_dur |
int8 |
lsn info meta file的磁盘访问总时延。 |
blk_info_meta_disk_read_counter |
int8 |
block info meta file的磁盘访问次数。 |
blk_info_meta_disk_read_dur |
int8 |
block info meta file的磁盘访问总时延。 |
base_page_read_disk_counter |
int8 |
base page file的磁盘访问次数。 |
base_page_read_disk_dur |
int8 |
base page file的磁盘访问总时延。 |
示例:
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()
描述:查询资源回收位置,其中包括每个线程的回收lsn,全局回收的lsn,查询线程最旧的快照的lsn。连接备DN或灾备集群CN查询,其他情况查询结果为0。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
page_redo_worker_thread_id |
text |
redo线程的回收lsn位置,其中thread_id为redo线程的线程id。 |
global_recycle_lsn |
text |
全局回收位置的lsn。 |
exrto_snapshot_oldest_lsn |
text |
查询线程的最旧的快照lsn。 |
示例:
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)
参数:dbid(oid)为数据库的oid。
描述:查询发送回放冲突信号的数量。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
conflict_all |
int8 |
发送回放冲突信号的总数量。 |
conflict_tablespace |
int8 |
发送tablespace类型回放冲突信号的数量。 |
conflict_lock |
int8 |
发送lock类型回放冲突信号的数量。 |
conflict_snapshot |
int8 |
发送snapshot类型回放冲突信号的数量。 |
conflict_bufferpin |
int8 |
发送bufferpin类型回放冲突信号的数量。 |
conflict_startup_deadlock |
int8 |
发送startup_deadlock类型回放冲突信号的数量。 |
conflict_truncate |
int8 |
发送truncate类型回放冲突信号的数量。 |
conflict_standby_query_timeout |
int8 |
发送standby_query_timeout类型回放冲突信号的数量。 |
conflict_force_recycle |
int8 |
发送force_recycle类型回放冲突信号的数量。 |
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()
描述:查询回放信息,包括回放线程的buffer命中率、执行unlink_rels文件数量、极致RTO场景下回放线程读取buffer时产生I/O操作的waitevent信息以及wal_read_from_write_buffer的waitevent信息。需要连接备DN或灾备集群CN查询。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
buffer_hit_rate |
float8 |
回放线程的buffer命中率。 |
ddl_unlink_nrels_count |
int8 |
回放ddl操作执行unlink rel文件的数量。 |
read_buffer_io_counter |
int8 |
极致RTO场景下回放线程读取buffer时产生I/O操作的waitevent触发次数。 |
read_buffer_io_total_dur |
int8 |
极致RTO场景下回放线程读取buffer时产生I/O操作的waitevent总用时。 |
read_buffer_io_avg_dur |
int8 |
极致RTO场景下回放线程读取buffer时产生I/O操作的waitevent平均用时。 |
read_buffer_io_min_dur |
int8 |
极致RTO场景下回放线程读取buffer时产生I/O操作的waitevent最小用时。 |
read_buffer_io_max_dur |
int8 |
极致RTO场景下回放线程读取buffer时产生I/O操作的waitevent最大用时。 |
read_wal_buf_counter |
int8 |
极致RTO场景下wal_read_from_write_buffer的waitevent触发次数。 |
read_wal_buf_total_dur |
int8 |
极致RTO场景下wal_read_from_write_buffer的waitevent总用时。 |
read_wal_buf_avg_dur |
int8 |
极致RTO场景下wal_read_from_write_buffer的waitevent平均用时。 |
read_wal_buf_min_dur |
int8 |
极致RTO场景下wal_read_from_write_buffer的waitevent最小用时。 |
read_wal_buf_max_dur |
int8 |
极致RTO场景下wal_read_from_write_buffer的waitevent最大用时。 |
示例:
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()
描述:查询处理回放冲突的函数的waitevent相关信息。需要连接备DN或灾备集群CN查询。
返回值类型:setof record。
名称 |
类型 |
描述 |
---|---|---|
conflict_lock_counter |
int8 |
处理lock类型回放冲突的触发次数。 |
conflict_lock_total_dur |
int8 |
处理lock类型回放冲突的总用时。 |
conflict_lock_avg_dur |
int8 |
处理lock类型回放冲突的平均用时。 |
conflict_lock_min_dur |
int8 |
处理lock类型回放冲突的最小用时。 |
conflict_lock_max_dur |
int8 |
处理lock类型回放冲突的最大用时。 |
conflict_snapshot_counter |
int8 |
处理snapshot类型回放冲突的触发次数。 |
conflict_snapshot_total_dur |
int8 |
处理snapshot类型回放冲突的总用时。 |
conflict_snapshot_avg_dur |
int8 |
处理snapshot类型回放冲突的平均用时。 |
conflict_snapshot_min_dur |
int8 |
处理snapshot类型回放冲突的最小用时。 |
conflict_snapshot_max_dur |
int8 |
处理snapshot类型回放冲突的最大用时。 |
conflict_tablespace_counter |
int8 |
处理tablespace类型回放冲突的触发次数。 |
conflict_tablespace_total_dur |
int8 |
处理tablespace类型回放冲突的总用时。 |
conflict_tablespace_avg_dur |
int8 |
处理tablespace类型回放冲突的平均用时。 |
conflict_tablespace_min_dur |
int8 |
处理tablespace类型回放冲突的最小用时。 |
conflict_tablespace_max_dur |
int8 |
处理tablespace类型回放冲突的最大用时。 |
conflict_database_counter |
int8 |
处理database类型回放冲突的触发次数。 |
conflict_database_total_dur |
int8 |
处理database类型回放冲突的总用时。 |
conflict_database_avg_dur |
int8 |
处理database类型回放冲突的平均用时。 |
conflict_database_min_dur |
int8 |
处理database类型回放冲突的最小用时。 |
conflict_database_max_dur |
int8 |
处理database类型回放冲突的最大用时。 |
conflict_truncate_counter |
int8 |
处理truncate类型回放冲突的触发次数。 |
conflict_truncate_total_dur |
int8 |
处理truncate类型回放冲突的总用时。 |
conflict_truncate_avg_dur |
int8 |
处理truncate类型回放冲突的平均用时。 |
conflict_truncate_min_dur |
int8 |
处理truncate类型回放冲突的最小用时。 |
conflict_truncate_max_dur |
int8 |
处理truncate类型回放冲突的最大用时。 |
conflict_standby_query_timeout_counter |
int8 |
处理standby_query_timeout类型回放冲突的触发次数。 |
conflict_standby_query_timeout_total_dur |
int8 |
处理standby_query_timeout类型回放冲突的总用时。 |
conflict_standby_query_timeout_avg_dur |
int8 |
处理standby_query_timeout类型回放冲突的平均用时。 |
conflict_standby_query_timeout_min_dur |
int8 |
处理standby_query_timeout类型回放冲突的最小用时。 |
conflict_standby_query_timeout_max_dur |
int8 |
处理standby_query_timeout类型回放冲突的最大用时。 |
conflict_force_recycle_counter |
int8 |
处理force_recycle类型回放冲突的触发次数。 |
conflict_force_recycle_total_dur |
int8 |
处理force_recycle类型回放冲突的总用时。 |
conflict_force_recycle_avg_dur |
int8 |
处理force_recycle类型回放冲突的平均用时。 |
conflict_force_recycle_min_dur |
int8 |
处理force_recycle类型回放冲突的最小用时。 |
conflict_force_recycle_max_dur |
int8 |
处理force_recycle类型回放冲突的最大用时。 |
示例:
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()
描述:查看备机中延迟删除的文件信息。
返回值类型:setof record
名称 |
类型 |
描述 |
---|---|---|
type |
INT4 |
删除操作的对象是表或数据库。 |
lsn |
TEXT |
标识特定日志文件记录在此日志文件中的位置。 |
tablespace |
INT4 |
数据库中用于存储表和索引的物理空间。 |
database |
INT4 |
该数据库的物理存储位置。 |
relation |
INT4 |
数据库中的对象,可以是表、视图以及索引的物理位置。 |
bucketid |
INT4 |
指定关系对象所属的bucket。 |
opt |
INT4 |
压缩表相关属性。 |
forknum |
INT4 |
主体命名之后的后缀命名,通过主体命名和后缀命名,可以找到唯一的物理文件。 |
gaussdb=# SELECT * FROM gs_display_delay_ddl_info();
type | lsn | tablespace | database | relation | bucketid | opt | forknum
------+-----+------------+----------+----------+----------+-----+---------
(0 rows)