View a markdown version of this page

Aurora DSQL의 시스템 테이블 및 명령 - Amazon Aurora DSQL

Aurora DSQL의 시스템 테이블 및 명령

Aurora DSQL에서 지원되는 시스템 테이블 및 카탈로그와 시스템 관련 정보(예: 버전)를 가져오는 데 유용한 쿼리를 알아보려면 다음 섹션을 참조하세요.

시스템 테이블

Aurora DSQL은 PostgreSQL과 호환되므로 PostgreSQL의 많은 시스템 카탈로그 테이블가 Aurora DSQL에도 있습니다.

중요한 PostgreSQL 카탈로그 테이블 및 뷰

다음 표에서는 Aurora DSQL에서 사용할 수 있는 가장 일반적인 테이블과 뷰를 설명합니다.

이름 설명

pg_namespace

모든 스키마에 대한 정보

pg_tables

모든 테이블에 대한 정보

pg_attribute

모든 속성에 대한 정보

pg_views

(미리) 정의된 뷰에 대한 정보

pg_class

모든 테이블, 열, 인덱스 및 유사한 객체 설명

pg_stats

플래너 통계에 대한 뷰

pg_user

사용자에 대한 정보

pg_roles

사용자 및 그룹에 대한 정보

pg_indexes

모든 인덱스 나열

pg_constraint

테이블에 대한 제약 조건 나열

지원되는 카탈로그 테이블과 지원되지 않는 카탈로그 테이블

다음 표에는 Aurora DSQL에서 지원되는 테이블과 지원되지 않는 테이블이 나와 있습니다.

이름 Aurora DSQL에 적용 가능

pg_aggregate

아니요

pg_am

pg_amop

아니요

pg_amproc

아니요

pg_attrdef

pg_attribute

pg_authid

아니요(pg_roles 사용)

pg_auth_members

pg_cast

pg_class

pg_collation

pg_constraint

pg_conversion

아니요

pg_database

아니요

pg_db_role_setting

pg_default_acl

pg_depend

pg_description

pg_enum

아니요

pg_event_trigger

아니요

pg_extension

아니요

pg_foreign_data_wrapper

아니요

pg_foreign_server

아니요

pg_foreign_table

아니요

pg_index

pg_inherits

pg_init_privs

아니요

pg_language

아니요

pg_largeobject

아니요

pg_largeobject_metadata

pg_namespace

pg_opclass

아니요

pg_operator

pg_opfamily

아니요

pg_parameter_acl

pg_partitioned_table

아니요

pg_policy

아니요

pg_proc

아니요

pg_publication

아니요

pg_publication_namespace

아니요

pg_publication_rel

아니요

pg_range

pg_replication_origin

아니요

pg_rewrite

아니요

pg_seclabel

아니요

pg_sequence

아니요

pg_shdepend

pg_shdescription

pg_shseclabel

아니요

pg_statistic

pg_statistic_ext

아니요

pg_statistic_ext_data

아니요

pg_subscription

아니요

pg_subscription_rel

아니요

pg_tablespace

아니요

pg_transform

아니요

pg_trigger

아니요

pg_ts_config

pg_ts_config_map

pg_ts_dict

pg_ts_parser

pg_ts_template

pg_type

pg_user_mapping

아니요

지원되는 시스템 뷰와 지원되지 않는 시스템 뷰

다음 표에는 Aurora DSQL에서 지원되는 뷰와 지원되지 않는 뷰가 나와 있습니다.

이름 Aurora DSQL에 적용 가능

pg_available_extensions

아니요

pg_available_extension_versions

아니요

pg_backend_memory_contexts

pg_config

아니요

pg_cursors

아니요

pg_file_settings

아니요

pg_group

pg_hba_file_rules

아니요

pg_ident_file_mappings

아니요

pg_indexes

pg_locks

아니요

pg_matviews

아니요

pg_policies

아니요

pg_prepared_statements

아니요

pg_prepared_xacts

아니요

pg_publication_tables

아니요

pg_replication_origin_status

아니요

pg_replication_slots

아니요

pg_roles

pg_rules

아니요

pg_seclabels

아니요

pg_sequences

아니요

pg_settings

pg_shadow

pg_shmem_allocations

pg_stats

pg_stats_ext

아니요

pg_stats_ext_exprs

아니요

pg_tables

pg_timezone_abbrevs

pg_timezone_names

pg_user

pg_user_mappings

아니요

pg_views

pg_stat_activity

아니요

pg_stat_replication

아니요

pg_stat_replication_slots

아니요

pg_stat_wal_receiver

아니요

pg_stat_recovery_prefetch

아니요

pg_stat_subscription

아니요

pg_stat_subscription_stats

아니요

pg_stat_ssl

pg_stat_gssapi

아니요

pg_stat_archiver

아니요

pg_stat_io

아니요

pg_stat_bgwriter

아니요

pg_stat_wal

아니요

pg_stat_database

아니요

pg_stat_database_conflicts

아니요

pg_stat_all_tables

아니요

pg_stat_all_indexes

아니요

pg_statio_all_tables

아니요

pg_statio_all_indexes

아니요

pg_statio_all_sequences

아니요

pg_stat_slru

아니요

pg_statio_user_tables

아니요

pg_statio_user_sequences

아니요

pg_stat_user_functions

아니요

pg_stat_user_indexes

아니요

pg_stat_progress_analyze

아니요

pg_stat_progress_basebackup

아니요

pg_stat_progress_cluster

아니요

pg_stat_progress_create_index

아니요

pg_stat_progress_vacuum

아니요

pg_stat_sys_indexes

아니요

pg_stat_sys_tables

아니요

pg_stat_xact_all_tables

아니요

pg_stat_xact_sys_tables

아니요

pg_stat_xact_user_functions

아니요

pg_stat_xact_user_tables

아니요

pg_statio_sys_indexes

아니요

pg_statio_sys_sequences

아니요

pg_statio_sys_tables

아니요

pg_statio_user_indexes

아니요

sys.jobs 보기

sys.jobs은 비동기 작업에 대한 상태 정보를 제공합니다. 예를 들어 사용자가 비동기 인덱스를 생성한 후 Aurora DSQL은 job_uuid를 반환합니다. 이 job_uuidsys.jobs을 함께 사용하여 작업 상태를 조회할 수 있습니다.

SELECT * FROM sys.jobs;

Aurora DSQL은 다음과 유사한 응답을 반환합니다.

job_id | status | details | job_type | class_id | object_id | object_name | start_time | update_time ----------------------------+-----------+---------+-------------+----------+-----------+-------------------+------------------------+------------------------ wqhu6ewifze5xitg3umt24h5ua | completed | | INDEX_BUILD | 1259 | 26433 | public.nt2_c1_idx | 2025-09-25 22:07:31+00 | 2025-09-25 22:07:46+00 kkngzf33dndl3daacxehpx5eba | completed | | ANALYZE | 1259 | 26419 | public.nt | 2025-09-25 21:57:05+00 | 2025-09-25 21:57:27+00 fyopxjb6ovdn7po6lrkj63cyea | completed | | DROP | 1259 | 26422 | | 2025-09-25 22:05:57+00 | 2025-09-25 22:06:03+00

다음 표는 sys.jobs 보기의 열을 설명합니다.

sys.jobs 보기 열
Type 설명
job_id text 작업을 나타내는 base-32 UUID입니다.
status text 작업의 현재 상태입니다. 가능한 값은 submitted, processing, completedfailed입니다. 자세한 내용은 sys.jobs 상태 값 섹션을 참조하세요.
details text 작업에 대한 모든 관련 세부 정보입니다. 작업이 실패하면 자세한 이유가 제공됩니다.
job_type text 비동기 작업의 유형입니다. 가능한 값은 다음과 같습니다. INDEX_BUILD - 비동기식 인덱스 구축. ANALYZE - 시스템에서 제출하는 자동 분석 작업. DROP - DROP TABLE 또는 DROP INDEX 작업 후 물리적 데이터 제거.
class_id oid 객체가 포함된 카탈로그 테이블의 OID입니다.
object_id oid 객체의 OID입니다.
object_name text 객체의 정규화된 이름입니다. DROP 작업은 이미 삭제된 객체를 참조할 수 없습니다. 참조된 객체가 이미 삭제된 경우는 object_name은 NULL일 수 있습니다.
start_time timestamp with time zone 작업이 제출된 타임스탬프입니다.
update_time timestamp with time zone 작업 행이 마지막으로 업데이트된 타임스탬프입니다.
sys.jobs 상태 값
Status 설명
submitted 작업이 제출되었지만 Aurora DSQL에서 아직 처리를 시작하지 않았습니다.
processing Aurora DSQL이 작업을 처리하고 있습니다.
failed 작업이 실패했습니다. 자세한 내용은 details 열을 참조하세요.
completed Aurora DSQL이 작업을 성공적으로 완료했습니다.

sys.iam_pg_role_mappings 보기

sys.iam_pg_role_mappings 뷰는 IAM 사용자에게 부여된 권한에 대한 정보를 제공합니다. 예를 들어 DQSLDBConnect가 관리자가 아닌 사용자에게 Aurora DSQL 액세스 권한을 부여하는 IAM 역할이고 testuser라는 사용자에게 DQSLDBConnect 역할 및 해당 권한이 부여된 경우 sys.iam_pg_role_mappings 뷰를 쿼리하여 어떤 사용자에게 어떤 권한이 부여되는지 확인할 수 있습니다.

SELECT * FROM sys.iam_pg_role_mappings;

유용한 시스템 메타데이터 쿼리

이러한 쿼리를 사용하면 전체 테이블 스캔과 같이 비용이 많이 드는 작업을 수행하지 않고도 테이블 통계 및 시스템 메타데이터를 가져올 수 있습니다.

테이블의 예상 행 수 가져오기

전체 테이블 스캔을 수행하지 않고 테이블의 대략적인 행 수를 가져오려면 다음 쿼리를 사용합니다.

SELECT reltuples FROM pg_class WHERE relname = 'table_name';

이 명령은 다음과 비슷한 출력을 반환합니다.

  reltuples
--------------
 9.993836e+08

이 접근 방식은 Aurora DSQL의 SELECT COUNT(*) 대형 테이블보다 더 효율적입니다.

현재 Aurora DSQL 메이저 버전 확인

Aurora DSQL 클러스터의 현재 메이저 버전을 확인하려면 다음 쿼리를 사용합니다.

SELECT * FROM sys.dsql_major_version();

이 명령은 다음과 비슷한 출력을 반환합니다.

 dsql_major_version
--------------------
                  1

이 반환 값은 Aurora DSQL에서 SQL 연결이 활성화된 메이저 버전입니다.

현재 PostgreSQL 버전 확인

Aurora DSQL 클러스터의 현재 PostgreSQL 버전을 확인하려면 다음 쿼리를 사용합니다.

SHOW server_version;

이 명령은 다음과 비슷한 출력을 반환합니다.

 server_version
----------------
 16.13

이 반환 값은 Aurora DSQL에서 SQL 연결이 활성화된 PostgreSQL 버전입니다.

ANALYZE 명령

ANALYZE 명령은 데이터베이스의 테이블 내용에 대한 통계를 수집하고 결과를 pg_stats 시스템 뷰에 저장합니다. 이후 쿼리 플래너는 이러한 통계를 사용하여 쿼리에 대한 가장 효율적인 실행 계획을 결정하는 데 도움을 줍니다.

Aurora DSQL에서는 명시적 트랜잭션 내에서 ANALYZE 명령을 실행할 수 없습니다. ANALYZE에는 데이터베이스 트랜잭션 제한 시간이 적용되지 않습니다.

수동 개입의 필요성을 줄이고 통계를 지속적으로 최신 상태로 유지하기 위해 Aurora DSQL은 ANALYZE를 백그라운드 프로세스로 자동으로 실행합니다. 이 백그라운드 작업은 테이블에서 관찰된 변경 속도에 따라 자동으로 트리거됩니다. 마지막 분석 이후 삽입, 업데이트 또는 삭제된 행(튜플) 수와 연결됩니다.

ANALYZE는 백그라운드에서 비동기적으로 실행되며 다음 쿼리를 사용하여 시스템 뷰 sys.jobs에서 활동을 모니터링할 수 있습니다.

SELECT * FROM sys.jobs WHERE job_type = 'ANALYZE';

주요 고려 사항

참고

ANALYZE 작업은 Aurora DSQL의 다른 비동기 작업과 마찬가지로 청구됩니다. 테이블을 수정하면 자동 백그라운드 통계 수집 작업이 간접적으로 트리거되어 연결된 시스템 수준 활동으로 인해 사용량 측정에 따른 요금이 발생할 수 있습니다.

자동으로 트리거되는 백그라운드 ANALYZE 작업은 수동 ANALYZE와 동일한 유형의 통계를 수집하여 기본적으로 사용자 테이블에 적용합니다. 시스템 및 카탈로그 테이블은 이 자동 프로세스에서 제외됩니다.