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 を返します。分散セッションは、DB シャードグループのルーターで実行され、DB シャードグループの 1 つ以上のシャードでバックエンドプロセスが関与します。以下の例は、
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
関数は、DB シャードグループ内のデータベースのサイズを返します。入力パラメータは次のとおりです。
-
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
関数は、現在 2 フェーズコミット用に準備されているすべてのノードのトランザクションに関する情報を返します。詳細については、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
関数は、DB シャードグループのテーブルのさまざまなサイズを返します。入力パラメータは次のとおりです。
-
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
が有効になっている場合、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
関数は、指定されたusername
、dbname
、distributed_query_id
、queryid
パラメータに対応する、limitless_stat_statements
によってこれまで収集された統計を破棄します。パラメータのいずれかが指定されていない場合、デフォルト値""
または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
-