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
-