Aurora DSQL 中的系统表和命令 - Amazon Aurora DSQL

Aurora DSQL 中的系统表和命令

请参阅以下各节,来了解 Aurora DSQL 中支持的系统表和目录。

系统表

Aurora DSQL 与 PostgreSQL 兼容,因此 Aurora DSQL 中还存在许多来自 PostgreSQL 的 system catalog tablesviews

重要的 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.iam_pg_role_mappings 视图

Aurora DSQL 支持以下系统视图:

sys.jobs

sys.jobs 提供有关异步作业的状态信息。例如,在您创建异步索引后,Aurora DSQL 将返回 job_uuid。您可以将此 job_uuidsys.jobs 结合使用来查找作业的状态。

SELECT * FROM sys.jobs WHERE job_id = 'example_job_uuid'; job_id | status | details ------------------+------------+--------- example_job_uuid | processing | (1 row)
sys.iam_pg_role_mappings

视图 sys.iam_pg_role_mappings 提供有关授予 IAM 用户的权限的信息。例如,如果 DQSLDBConnect 是一个 IAM 角色,该角色为非管理员提供 Aurora DSQL 访问权限,并且向名为 testuser 的用户授予了 DQSLDBConnect 角色和相应的权限,则您可以查询 sys.iam_pg_role_mappings 视图来查看向哪些用户授予了哪些权限。

SELECT * FROM sys.iam_pg_role_mappings;

pg_class 表

pg_class 表存储有关数据库对象的元数据。要获取表中行数的近似计数,请运行以下命令。

SELECT reltuples FROM pg_class WHERE relname = 'table_name';

该命令返回的输出类似于下方内容。

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

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 相同,默认情况下会将其应用于用户表。系统表和目录表不包括在此自动化流程中。