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 샤드 그룹의 샤드 중 하나 이상에서 이루어지는 백엔드 프로세스를 포함합니다.다음 예시에서는
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(text) - 취소할 분산 세션의 ID입니다.
출력 파라미터는 다음과 같습니다.
-
subcluster_id(text) - 이 프로세스가 속한 하위 클러스터의 ID입니다. -
pid(text) - 백엔드 프로세스 ID입니다. -
success(boolean) - 취소의 성공 여부입니다.
다음 예시에서는
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(name) - 크기를 가져올 데이터베이스입니다.
출력 파라미터는 다음과 같습니다.
-
subcluster_id(text) - 이 프로세스가 속한 하위 클러스터의 ID입니다. -
subcluster_type(text) - 이 프로세스가 속한 하위 클러스터 유형으로,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함수는 DB 샤드 그룹에 있는 테이블의 다양한 크기를 반환합니다.입력 파라미터는 다음과 같습니다.
-
relnspname(name) - 테이블이 포함된 스키마의 이름입니다. -
relname(name) - 테이블의 이름입니다.
출력 파라미터는 다음과 같습니다.
-
subcluster_id(text) - 이 프로세스가 속한 하위 클러스터의 ID입니다. -
subcluster_type(text) - 이 프로세스가 속한 하위 클러스터 유형으로,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함수는limitless_stat_statements가 지금까지 수집한 지정된username,dbname,distributed_query_id및queryid파라미터에 해당하는 통계를 삭제합니다. 파라미터가 지정되지 않은 경우 각각에 기본값""또는0(유효하지 않음)이 사용되며 다른 파라미터와 일치하는 통계가 재설정됩니다. 파라미터가 지정되지 않았거나 지정된 모든 파라미터가""또는0(유효하지 않음)인 경우 함수는 모든 통계를 삭제합니다.limitless_stat_statements뷰의 모든 통계가 삭제되면 함수는limitless_stat_statements_info뷰의 통계도 재설정합니다.입력 파라미터는 다음과 같습니다.
-
username(name) - 문을 쿼리한 사용자입니다. -
dbname(name) - 쿼리가 실행된 데이터베이스입니다. -
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(text) - 종료할 분산 세션의 ID입니다.
출력 파라미터는 다음과 같습니다.
-
subcluster_id(text) - 이 프로세스가 속한 하위 클러스터의 ID입니다. -
pid(text) - 백엔드 프로세스 ID입니다. -
success(boolean) - 프로세스가 성공적으로 종료되었는지를 나타냅니다.
다음 예시에서는
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(text) - 이 프로세스가 속한 하위 클러스터의 ID입니다. -
subcluster_type(text) - 이 프로세스가 속한 하위 클러스터 유형으로,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 -