本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Aurora PostgreSQL 無限資料庫函數
下表顯示 Aurora PostgreSQL 無限資料庫的新函數。
注意
此資料表中列出的函數位於rds_aurora
結構描述中。使用無限資料庫函數時,請務必包含完整格式的物件名稱:rds_aurora
。object_name
Aurora PostgreSQL 無限資料庫函數 | 對應的 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 無限資料庫函數的詳細資訊。如需 PostgreSQL 函數的詳細資訊,請參閱 PostgreSQL 文件中的函數和運算子
- 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
(name) – 要取得其大小的資料庫。
輸出參數如下:
-
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
– 此叉中與資料表相關聯的吐司資料表位元組大小。 -
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
已啟用, 中的資料stats_reset
欄limitless_stat_database
會顯示資料庫上次重設統計資料的時間。根據預設, 只能由超級使用者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
(name) – 查詢陳述式的使用者。 -
dbname
(名稱) – 執行查詢的資料庫。 -
distributed_query_id
(初階) – 來自協調器節點之父查詢的查詢 ID。NULL
如果這是父查詢,則此欄為 。協調器節點會將分散式查詢 ID 向下推送至參與者節點。因此,對於參與者節點,分散式查詢 ID 和查詢 ID 的值不同。 -
queryid
(初階) – 陳述式的查詢 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
-