Tabelle e comandi di sistema in Aurora DSQL - Amazon Aurora DSQL

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tabelle e comandi di sistema in Aurora DSQL

Consultare le sezioni seguenti per informazioni sulle tabelle e i cataloghi di sistema supportati in Aurora DSQL.

Tabelle di sistema

Aurora DSQL è compatibile con PostgreSQL, quindi molte tabelle e viste del catalogo di sistema di PostgreSQL esistono anche in Aurora DSQL.

Tabelle e viste importanti del catalogo di PostgreSQL

La tabella seguente descrive le tabelle e le viste più comuni che è possibile utilizzare in Aurora DSQL.

Nome Description

pg_namespace

Informazioni su tutti gli schemi

pg_tables

Informazioni su tutte le tabelle

pg_attribute

Informazioni su tutti gli attributi

pg_views

Informazioni sulle viste (pre)definite

pg_class

Descrive tutte le tabelle, le colonne, gli indici e gli oggetti simili

pg_stats

Una vista sulle statistiche del planner

pg_user

Informazioni sugli utenti

pg_roles

Informazioni su utenti e gruppi

pg_indexes

Elenca tutti gli indici

pg_constraint

Elenca i vincoli sulle tabelle

Tabelle di catalogo supportate e non supportate

La tabella seguente indica quali tabelle sono supportate e non supportate in Aurora DSQL.

Nome Applicabile ad Aurora DSQL

pg_aggregate

No

pg_am

pg_amop

No

pg_amproc

No

pg_attrdef

pg_attribute

pg_authid

No (utilizzare pg_roles)

pg_auth_members

pg_cast

pg_class

pg_collation

pg_constraint

pg_conversion

No

pg_database

No

pg_db_role_setting

pg_default_acl

pg_depend

pg_description

pg_enum

No

pg_event_trigger

No

pg_extension

No

pg_foreign_data_wrapper

No

pg_foreign_server

No

pg_foreign_table

No

pg_index

pg_inherits

pg_init_privs

No

pg_language

No

pg_largeobject

No

pg_largeobject_metadata

pg_namespace

pg_opclass

No

pg_operator

pg_opfamily

No

pg_parameter_acl

pg_partitioned_table

No

pg_policy

No

pg_proc

No

pg_publication

No

pg_publication_namespace

No

pg_publication_rel

No

pg_range

pg_replication_origin

No

pg_rewrite

No

pg_seclabel

No

pg_sequence

No

pg_shdepend

pg_shdescription

pg_shseclabel

No

pg_statistic

pg_statistic_ext

No

pg_statistic_ext_data

No

pg_subscription

No

pg_subscription_rel

No

pg_tablespace

No

pg_transform

No

pg_trigger

No

pg_ts_config

pg_ts_config_map

pg_ts_dict

pg_ts_parser

pg_ts_template

pg_type

pg_user_mapping

No

Viste di sistema supportate e non supportate

La tabella seguente indica quali viste sono supportate e non supportate in Aurora DSQL.

Nome Applicabile ad Aurora DSQL

pg_available_extensions

No

pg_available_extension_versions

No

pg_backend_memory_contexts

pg_config

No

pg_cursors

No

pg_file_settings

No

pg_group

pg_hba_file_rules

No

pg_ident_file_mappings

No

pg_indexes

pg_locks

No

pg_matviews

No

pg_policies

No

pg_prepared_statements

No

pg_prepared_xacts

No

pg_publication_tables

No

pg_replication_origin_status

No

pg_replication_slots

No

pg_roles

pg_rules

No

pg_seclabels

No

pg_sequences

No

pg_settings

pg_shadow

pg_shmem_allocations

pg_stats

pg_stats_ext

No

pg_stats_ext_exprs

No

pg_tables

pg_timezone_abbrevs

pg_timezone_names

pg_user

pg_user_mappings

No

pg_views

pg_stat_activity

No

pg_stat_replication

No

pg_stat_replication_slots

No

pg_stat_wal_receiver

No

pg_stat_recovery_prefetch

No

pg_stat_subscription

No

pg_stat_subscription_stats

No

pg_stat_ssl

pg_stat_gssapi

No

pg_stat_archiver

No

pg_stat_io

No

pg_stat_bgwriter

No

pg_stat_wal

No

pg_stat_database

No

pg_stat_database_conflicts

No

pg_stat_all_tables

No

pg_stat_all_indexes

No

pg_statio_all_tables

No

pg_statio_all_indexes

No

pg_statio_all_sequences

No

pg_stat_slru

No

pg_statio_user_tables

No

pg_statio_user_sequences

No

pg_stat_user_functions

No

pg_stat_user_indexes

No

pg_stat_progress_analyze

No

pg_stat_progress_basebackup

No

pg_stat_progress_cluster

No

pg_stat_progress_create_index

No

pg_stat_progress_vacuum

No

pg_stat_sys_indexes

No

pg_stat_sys_tables

No

pg_stat_xact_all_tables

No

pg_stat_xact_sys_tables

No

pg_stat_xact_user_functions

No

pg_stat_xact_user_tables

No

pg_statio_sys_indexes

No

pg_statio_sys_sequences

No

pg_statio_sys_tables

No

pg_statio_user_indexes

No

Le viste sys.jobs e sys.iam_pg_role_mappings

Aurora DSQL supporta le seguenti viste di sistema:

sys.jobs

sys.jobs fornisce informazioni sullo stato delle attività asincrone. Ad esempio, dopo aver creato un indice asincrono, Aurora DSQL restituisce un job_uuid. È possibile utilizzare tale job_uuid con sys.jobs per cercare lo stato dell’attività.

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

La vista sys.iam_pg_role_mappings fornisce informazioni sulle autorizzazioni concesse agli utenti IAM. Ad esempio, se DQSLDBConnect è un ruolo IAM che fornisce ad Aurora DSQL l’accesso ai non amministratori e a un utente denominato testuser vengono concessi il ruolo DQSLDBConnect e le autorizzazioni corrispondenti, è possibile interrogare la vista sys.iam_pg_role_mappings per vedere a quali utenti sono concesse quali autorizzazioni.

SELECT * FROM sys.iam_pg_role_mappings;

Domande utili sui metadati di sistema

Utilizza queste query per ottenere statistiche e metadati delle tabelle senza eseguire operazioni costose come la scansione completa della tabella.

Ottieni il numero stimato di righe per una tabella

Per ottenere il conteggio approssimativo delle righe in una tabella senza eseguire una scansione completa della tabella, utilizzate la seguente query:

SELECT reltuples FROM pg_class WHERE relname = 'table_name';

Il comando restituisce un output simile al seguente:

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

Questo approccio è più efficiente rispetto alle tabelle SELECT COUNT(*) di grandi dimensioni in Aurora DSQL.

Il comando ANALYZE.

Il comando ANALYZE raccoglie statistiche sul contenuto delle tabelle nel database e archivia i risultati nella vista di sistema pg_stats. In un secondo momento, il pianificatore di query utilizza queste statistiche per determinare i piani di esecuzione più efficienti per le query.

In Aurora DSQL, non è possibile eseguire il comando ANALYZE all’interno di una transazione esplicita. ANALYZEnon è soggetto al limite di timeout delle transazioni del database.

Per ridurre la necessità di interventi manuali e mantenere le statistiche costantemente aggiornate, Aurora DSQL esegue automaticamente ANALYZE come processo in background. Questo processo in background viene attivato automaticamente in base al tasso di variazione osservato nella tabella. È collegato al numero di righe (tuple) che sono state inserite, aggiornate o eliminate dall’ultima analisi.

ANALYZE viene eseguito in modo asincrono in background e la sua attività può essere monitorata nella vista di sistema sys.jobs con la seguente query:

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

Considerazioni chiave

Nota

Le attività ANALYZE vengono fatturate come le altre attività asincrone in Aurora DSQL. Quando si modifica una tabella, ciò può attivare indirettamente un processo automatico di raccolta di statistiche in background, che può comportare addebiti di costi dovuti all’attività associata a livello di sistema.

Le attività ANALYZE in background, attivate automaticamente, raccolgono gli stessi tipi di statistiche utilizzate da un comando ANALYZE avviato manualmente e le applicano per impostazione predefinita alle tabelle utente. Le tabelle di sistema e di catalogo sono escluse da questo processo automatizzato.