Aurora PostgreSQL Limitless Database 函数
下表列出了 Aurora PostgreSQL Limitless Database 的新函数。
注意
此表中列出的函数位于 rds_aurora
架构中。使用 Limitless Database 函数时,请确保包含完全限定的对象名称:rds_aurora
.
。object_name
Aurora PostgreSQL Limitless Database 函数 | 对应的 Aurora PostgreSQL 函数 |
---|---|
limitless_backend_dsid | pg_backend_pid |
limitless_cancel_session | pg_cancel_backend |
limitless_stat_clear_snapshot | pg_stat_clear_snapshot |
limitless_stat_database_size | pg_database_size |
limitless_stat_get_snapshot_timestamp | pg_stat_get_snapshot_timestamp |
limitless_stat_prepared_xacts | pg_prepared_xacts |
limitless_stat_relation_sizes | pg_indexes_size、pg_relation_size、pg_table_size、pg_total_relation_size |
limitless_stat_reset | pg_stat_reset |
limitless_stat_statements_reset | pg_stat_statements_reset |
limitless_stat_system_waits | aurora_stat_system_waits |
limitless_terminate_session | pg_terminate_backend |
limitless_wait_report | aurora_wait_report |
以下示例提供了有关 Aurora PostgreSQL Limitless Database 函数的详细信息。有关 PostgreSQL 函数的更多信息,请参阅 PostgreSQL 文档中的 Functions and operators
- limitless_backend_dsid
-
limitless_backend_dsid
函数返回当前会话的分布式会话 ID。分布式会话在数据库分片组中的路由器上运行,涉及数据库分片组中一个或多个分片上的后端进程。以下示例演示了如何使用
limitless_backend_dsid
函数。SELECT rds_aurora.limitless_backend_dsid(); limitless_backend_dsid ------------------------ 8CACD7B04D0FC2A5 (1 row)
- limitless_cancel_session
-
limitless_cancel_session
函数的工作原理与pg_cancel_backend
类似,但它尝试通过发送SIGINT
(中断信号)来取消与提供的分布式会话 ID 相关的所有后端进程。以下是输入参数:
-
distributed_session_id
(文本)– 要取消的分布式会话的 ID。
以下是输出参数:
-
subcluster_id
(文本)– 此进程所属的子集群 ID。 -
pid
(文本)– 后端进程 ID。 -
success
(布尔值)– 取消是否成功。
以下示例演示了如何使用
limitless_cancel_session
函数。SELECT * FROM rds_aurora.limitless_cancel_session('940CD5C81E3C796B'); subcluster_id | pid | success ---------------+-------+--------- 1 | 26920 | t (1 row)
-
- limitless_stat_clear_snapshot
-
limitless_stat_clear_snapshot
函数丢弃所有节点上的当前统计快照或缓存信息。以下示例演示了如何使用
limitless_stat_clear_snapshot
函数。SELECT rds_aurora.limitless_stat_clear_snapshot();
- limitless_stat_database_size
-
limitless_stat_database_size
函数返回数据库分片组中数据库的大小。以下是输入参数:
-
dbname
(名称)– 要获取其大小的数据库。
以下是输出参数:
-
subcluster_id
(文本)– 此进程所属的子集群 ID。 -
subcluster_type
(文本)– 此进程所属的子集群的类型:router
或shard
。 -
db_size
– 此子集群中数据库的大小(以字节为单位)。
以下示例演示了如何使用
limitless_stat_database_size
函数。SELECT * FROM rds_aurora.limitless_stat_database_size('postgres_limitless'); subcluster_id | subcluster_type | db_size ---------------+-----------------+---------- 1 | router | 8895919 2 | router | 8904111 3 | shard | 21929391 4 | shard | 21913007 5 | shard | 21831087 (5 rows)
-
- limitless_stat_get_snapshot_timestamp
-
limitless_stat_get_snapshot_timestamp
函数返回当前统计快照的时间戳,如果没有拍摄统计快照,则返回NULL
。如果stats_fetch_consistency
设置为snapshot
,则会在事务中首次访问累积统计数据时拍摄快照。返回所有节点快照时间戳的合并视图。subcluster_id
和subcluster_type
列显示了数据来自哪个节点。以下示例演示了如何使用
limitless_stat_get_snapshot_timestamp
函数。SELECT * FROM rds_aurora.limitless_stat_get_snapshot_timestamp(); subcluster_id | subcluster_type | snapshot_timestamp ---------------+-----------------+-------------------- 1 | router | 2 | router | 3 | shard | 4 | shard | 5 | shard | (5 rows)
- limitless_stat_prepared_xacts
-
limitless_stat_prepared_xacts
函数返回有关当前准备进行两阶段提交的所有节点上的事务信息。有关更多信息,请参阅 PostgreSQL 文档中的 pg_prepared_xacts。 以下示例演示了如何使用
limitless_stat_prepared_xacts
函数。postgres_limitless=> SELECT * FROM rds_aurora.limitless_stat_prepared_xacts; subcluster_id | subcluster_type | transaction_id | gid | prepared | owner_id | database_id ---------------+-----------------+----------------+------------------------------+-------------------------------+------------+-------------------- 8 | shard | 5815978 | 7_4599899_postgres_limitless | 2024-09-03 15:51:17.659603+00 | auroraperf | postgres_limitless 12 | shard | 4599138 | 7_4599899_postgres_limitless | 2024-09-03 15:51:17.659637+00 | auroraperf | postgres_limitless (2 rows)
- limitless_stat_relation_sizes
-
limitless_stat_relation_sizes
函数返回数据库分片组中表的不同大小。以下是输入参数:
-
relnspname
(名称)– 包含表的架构名称。 -
relname
(名称)– 表的名称。
以下是输出参数:
-
subcluster_id
(文本)– 此进程所属的子集群 ID。 -
subcluster_type
(文本)– 此进程所属的子集群的类型:router
或shard
。 -
main_size
– 此节点中主数据分叉的大小(以字节为单位)。 -
fsm_size
– 此节点中表的可用空间映射的大小(以字节为单位)。 -
vm_size
– 此节点中表的可见性映射的大小(以字节为单位)。 -
init_size
– 此节点中表的初始化大小(以字节为单位)。 -
toast_size
– 与该分叉中的表关联的 toast 表的大小(以字节为单位)。 -
index_size
– 此节点中表的所有索引的大小(以字节为单位)。 -
total_size
– 此节点中所有表段的大小(以字节为单位)。
以下示例演示如何使用
limitless_stat_relation_sizes
函数(省略了一些列)。SELECT * FROM rds_aurora.limitless_stat_relation_sizes('public','customers'); subcluster_id | subcluster_type | main_size | fsm_size | vm_size | toast_size | table_size | total_size ---------------+-----------------+-----------+----------+---------+------------+------------+------------ 1 | router | 0 | 0 | 0 | 0 | 0 | 0 2 | router | 0 | 0 | 0 | 0 | 0 | 0 3 | shard | 4169728 | 4177920 | 1392640 | 1392640 | 11132928 | 11132928 4 | shard | 4169728 | 4177920 | 1392640 | 1392640 | 11132928 | 11132928 5 | shard | 3981312 | 4227072 | 1409024 | 1409024 | 11026432 | 11026432 (5 rows)
-
- limitless_stat_reset
-
limitless_stat_reset
函数将当前数据库的所有统计计数器重置为零(0)。如果启用track_functions
,则limitless_stat_database
中的stats_reset
列将显示上次重置数据库统计信息的时间。默认情况下,limitless_stat_reset
只能由超级用户运行。其他用户可以使用EXECUTE
权限获得权限。以下示例演示了如何使用
limitless_stat_reset
函数。SELECT tup_inserted, tup_deleted FROM pg_stat_database WHERE datname = 'postgres_limitless'; tup_inserted | tup_deleted --------------+------------- 896 | 0 (1 row) SELECT rds_aurora.limitless_stat_reset(); limitless_stat_reset --------------------- (1 row) SELECT tup_inserted, tup_deleted FROM pg_stat_database WHERE datname = 'postgres_limitless'; tup_inserted | tup_deleted -------------+------------- 0 | 0 (1 row)
- limitless_stat_statements_reset
-
limitless_stat_statements_reset
函数丢弃limitless_stat_statements
迄今为止收集到的与指定username
、dbname
、distributed_query_id
和queryid
参数相对应的统计数据。如果未指定任何参数,则将对每个参数使用默认值""
或0
(无效),并重置与其他参数匹配的统计数据。如果未指定任何参数,或者所有指定的参数均为""
或0
(无效),则该函数将丢弃所有统计数据。如果limitless_stat_statements
视图中的所有统计数据都被丢弃,则该函数还会重置limitless_stat_statements_info
视图中的统计数据。以下是输入参数:
-
username
(名称)– 查询语句的用户。 -
dbname
(名称)– 运行查询的数据库。 -
distributed_query_id
(bigint)– 来自协调器节点的父查询的查询 ID。如果是父查询,则此列为NULL
。协调器节点将分布式查询 ID 向下推送到参与者节点。因此,对于参与者节点,分布式查询 ID 和查询 ID 的值不同。 -
queryid
(bigint)– 语句的查询 ID。
以下示例说明如何使用
limitless_stat_statements_reset
函数重置limitless_stat_statements
收集的所有统计数据。SELECT rds_aurora.limitless_stat_statements_reset();
-
- limitless_stat_system_waits
-
limitless_stat_system_waits
函数返回来自aurora_stat_system_waits
的等待事件数据的合并视图,该视图报告实例中来自所有节点的系统范围的等待活动。subcluster_id
和subcluster_type
列显示了数据来自哪个节点。以下示例演示了如何使用
limitless_stat_system_waits
函数。postgres_limitless=> SELECT * FROM rds_aurora.limitless_stat_system_waits() lssw, pg_catalog.aurora_stat_wait_event() aswe WHERE lssw.event_id=aswe.event_id and aswe.event_name='LimitlessTaskScheduler'; subcluster_id | subcluster_type | type_id | event_id | waits | wait_time | event_name ---------------+-----------------+---------+-----------+--------+--------------+------------------------ 1 | router | 12 | 201326607 | 677068 | 616942216307 | LimitlessTaskScheduler 2 | router | 12 | 201326607 | 678586 | 616939897111 | LimitlessTaskScheduler 3 | shard | 12 | 201326607 | 756640 | 616965545172 | LimitlessTaskScheduler 4 | shard | 12 | 201326607 | 755184 | 616958057620 | LimitlessTaskScheduler 5 | shard | 12 | 201326607 | 757522 | 616963183539 | LimitlessTaskScheduler (5 rows)
- limitless_terminate_session
-
limitless_terminate_session
函数的工作原理与pg_terminate_backend
类似,但它尝试通过发送SIGTERM
(结束信号)来结束与提供的分布式会话 ID 相关的所有后端进程。以下是输入参数:
-
distributed_session_id
(文本)– 要结束的分布式会话的 ID。
以下是输出参数:
-
subcluster_id
(文本)– 此进程所属的子集群 ID。 -
pid
(文本)– 后端进程 ID。 -
success
(布尔值)– 进程是否成功结束。
以下示例演示了如何使用
limitless_terminate_session
函数。SELECT * FROM rds_aurora.limitless_terminate_session('940CD5C81E3C796B'); subcluster_id | pid | success ---------------+-------+--------- 1 | 26920 | t (1 row)
-
- limitless_wait_report
-
limitless_wait_report
函数返回一段时间内所有节点的等待事件活动。subcluster_id
和subcluster_type
列显示了数据来自哪个节点。以下是输出参数:
-
subcluster_id
(文本)– 此进程所属的子集群 ID。 -
subcluster_type
(文本)– 此进程所属的子集群的类型:router
或shard
。
其余各列与
aurora_wait_report
中的相同。以下示例演示了如何使用
limitless_wait_report
函数。postgres_limitless=> select * from rds_aurora.limitless_wait_report(); subcluster_id | subcluster_type | type_name | event_name | waits | wait_time | ms_per_wait | waits_per_xact | ms_per_xact ---------------+-----------------+-----------+------------+-------+-----------+-------------+--------------- +------------- 1 | router | Client | ClientRead | 57 | 741550.14 | 13009.652 | 0.19 | 2505.237 5 | shard | Client | ClientRead | 54 | 738897.68 | 13683.290 | 0.18 | 2496.276 4 | shard | Client | ClientRead | 54 | 738859.53 | 13682.584 | 0.18 | 2496.147 2 | router | Client | ClientRead | 53 | 719223.64 | 13570.257 | 0.18 | 2429.810 3 | shard | Client | ClientRead | 54 | 461720.40 | 8550.378 | 0.18 | 1559.86
-