

# Tabelas e comandos de sistema no Aurora DSQL
<a name="working-with-systems-tables"></a>

Consulte as seções a seguir para saber mais sobre tabelas e catálogos de sistema compatíveis no Aurora DSQL, bem como consultas úteis para encontrar informações sobre o sistema, como a versão.

## Tabelas de sistema
<a name="working-with-system-tables-queries"></a>

O Aurora DSQL é compatível com o PostgreSQL; portanto, muitas [tabelas de catálogo do sistema](https://www.PostgreSQL.org/docs/current/catalogs-overview.html) e [visualizações](https://www.PostgreSQL.org/docs/current/views.html) do PostgreSQL também existem no Aurora DSQL.

### Tabelas de catálogo e visualizações importantes do PostgreSQL
<a name="dsql-catalog-tables"></a>

A tabela a seguir descreve as tabelas e visualizações mais comuns que você pode usar no Aurora DSQL.


| Name (Nome) | Descrição | 
| --- | --- | 
|  `pg_namespace`  |  Informações sobre todos os esquemas  | 
|  `pg_tables`  |  Informações sobre todas as tabelas  | 
|  `pg_attribute`  |  Informações sobre todos os atributos  | 
|  `pg_views`  |  Informações sobre visualizações (pre)definidas  | 
|  `pg_class`  |  Descreve todas as tabelas, colunas, índices e objetos semelhantes  | 
|  `pg_stats`  |  Uma visualização das estatísticas do planejador  | 
|  `pg_user`  |  Informações sobre usuários  | 
|  `pg_roles`  |  Informações sobre usuários e grupos  | 
|  `pg_indexes`  |  Lista todos os índices  | 
|  `pg_constraint`  |  Lista as restrições nas tabelas  | 

### Tabelas de catálogo aceitas e não aceitas
<a name="dsql-catalog-tables-supported"></a>

A tabela a seguir indica quais tabelas são aceitas e não aceitas no Aurora DSQL.


| Nome | Aplicável ao Aurora DSQL | 
| --- | --- | 
|  `pg_aggregate`  |  Não  | 
|  `pg_am`  |  Sim  | 
|  `pg_amop`  |  Não  | 
|  `pg_amproc`  |  Não  | 
|  `pg_attrdef`  |  Sim  | 
|  `pg_attribute`  |  Sim  | 
|  `pg_authid`  |  Não (use `pg_roles`)  | 
|  `pg_auth_members`  |  Sim  | 
|  `pg_cast`  |  Sim  | 
|  `pg_class`  |  Sim  | 
|  `pg_collation`  |  Sim  | 
|  `pg_constraint`  |  Sim  | 
|  `pg_conversion`  |  Não  | 
|  `pg_database`  |  Não  | 
|  `pg_db_role_setting`  |  Sim  | 
|  `pg_default_acl`  |  Sim  | 
|  `pg_depend`  |  Sim  | 
|  `pg_description`  |  Sim  | 
|  `pg_enum`  |  Não  | 
|  `pg_event_trigger`  |  Não  | 
|  `pg_extension`  |  Não  | 
|  `pg_foreign_data_wrapper`  |  Não  | 
|  `pg_foreign_server`  |  Não  | 
|  `pg_foreign_table`  |  Não  | 
|  `pg_index`  |  Sim  | 
|  `pg_inherits`  |  Sim  | 
|  `pg_init_privs`  |  Não  | 
|  `pg_language`  |  Não  | 
|  `pg_largeobject`  |  Não  | 
|  `pg_largeobject_metadata`  |  Sim  | 
|  `pg_namespace`  |  Sim  | 
|  `pg_opclass`  |  Não  | 
|  `pg_operator`  |  Sim  | 
|  `pg_opfamily`  |  Não  | 
|  `pg_parameter_acl`  |  Sim  | 
|  `pg_partitioned_table`  |  Não  | 
|  `pg_policy`  |  Não  | 
|  `pg_proc`  |  Não  | 
|  `pg_publication`  |  Não  | 
|  `pg_publication_namespace`  |  Não  | 
|  `pg_publication_rel`  |  Não  | 
|  `pg_range`  |  Sim  | 
|  `pg_replication_origin`  |  Não  | 
|  `pg_rewrite`  |  Não  | 
|  `pg_seclabel`  |  Não  | 
|  `pg_sequence`  |  Não  | 
|  `pg_shdepend`  |  Sim  | 
|  `pg_shdescription`  |  Sim  | 
|  `pg_shseclabel`  |  Não  | 
|  `pg_statistic`  |  Sim  | 
|  `pg_statistic_ext`  |  Não  | 
|  `pg_statistic_ext_data`  |  Não  | 
|  `pg_subscription`  |  Não  | 
|  `pg_subscription_rel`  |  Não  | 
|  `pg_tablespace`  |  Não  | 
|  `pg_transform`  |  Não  | 
|  `pg_trigger`  |  Não  | 
|  `pg_ts_config`  |  Sim  | 
|  `pg_ts_config_map`  |  Sim  | 
|  `pg_ts_dict`  |  Sim  | 
|  `pg_ts_parser`  |  Sim  | 
|  `pg_ts_template`  |  Sim  | 
|  `pg_type`  |  Sim  | 
|  `pg_user_mapping`  |  Não  | 

### Visualizações do sistema aceitas e não aceitas
<a name="dsql-system-tables-supported"></a>

A tabela a seguir indica quais visualizações são aceitas e não aceitas no Aurora DSQL.


| Nome | Aplicável ao Aurora DSQL | 
| --- | --- | 
|  `pg_available_extensions`  |  Não  | 
|  `pg_available_extension_versions`  |  Não  | 
|  `pg_backend_memory_contexts`  |  Sim  | 
|  `pg_config`  |  Não  | 
|  `pg_cursors`  |  Não  | 
|  `pg_file_settings`  |  Não  | 
|  `pg_group`  |  Sim  | 
|  `pg_hba_file_rules`  |  Não  | 
|  `pg_ident_file_mappings`  |  Não  | 
|  `pg_indexes`  |  Sim  | 
|  `pg_locks`  |  Não  | 
|  `pg_matviews`  |  Não  | 
|  `pg_policies`  |  Não  | 
|  `pg_prepared_statements`  |  Não  | 
|  `pg_prepared_xacts`  |  Não  | 
|  `pg_publication_tables`  |  Não  | 
|  `pg_replication_origin_status`  |  Não  | 
|  `pg_replication_slots`  |  Não  | 
|  `pg_roles`  |  Sim  | 
|  `pg_rules`  |  Não  | 
|  `pg_seclabels`  |  Não  | 
|  `pg_sequences`  |  Não  | 
|  `pg_settings`  |  Sim  | 
|  `pg_shadow`  |  Sim  | 
|  `pg_shmem_allocations`  |  Sim  | 
|  `pg_stats`  |  Sim  | 
|  `pg_stats_ext`  |  Não  | 
|  `pg_stats_ext_exprs`  |  Não  | 
|  `pg_tables`  |  Sim  | 
|  `pg_timezone_abbrevs`  |  Sim  | 
|  `pg_timezone_names`  |  Sim  | 
|  `pg_user`  |  Sim  | 
|  `pg_user_mappings`  |  Não  | 
|  `pg_views`  |  Sim  | 
|  `pg_stat_activity`  |  Não  | 
|  `pg_stat_replication`  |  Não  | 
|  `pg_stat_replication_slots`  |  Não  | 
|  `pg_stat_wal_receiver`  |  Não  | 
|  `pg_stat_recovery_prefetch`  |  Não  | 
|  `pg_stat_subscription`  |  Não  | 
|  `pg_stat_subscription_stats`  |  Não  | 
|  `pg_stat_ssl`  |  Sim  | 
|  `pg_stat_gssapi`  |  Não  | 
|  `pg_stat_archiver`  |  Não  | 
|  `pg_stat_io`  |  Não  | 
|  `pg_stat_bgwriter`  |  Não  | 
|  `pg_stat_wal`  |  Não  | 
|  `pg_stat_database`  |  Não  | 
|  `pg_stat_database_conflicts`  |  Não  | 
|  `pg_stat_all_tables`  |  Não  | 
|  `pg_stat_all_indexes`  |  Não  | 
|  `pg_statio_all_tables`  |  Não  | 
|  `pg_statio_all_indexes`  |  Não  | 
|  `pg_statio_all_sequences`  |  Não  | 
|  `pg_stat_slru`  |  Não  | 
|  `pg_statio_user_tables`  |  Não  | 
|  `pg_statio_user_sequences`  |  Não  | 
|  `pg_stat_user_functions`  |  Não  | 
|  `pg_stat_user_indexes`  |  Não  | 
|  `pg_stat_progress_analyze`  |  Não  | 
|  `pg_stat_progress_basebackup`  |  Não  | 
|  `pg_stat_progress_cluster`  |  Não  | 
|  `pg_stat_progress_create_index`  |  Não  | 
|  `pg_stat_progress_vacuum`  |  Não  | 
|  `pg_stat_sys_indexes`  |  Não  | 
|  `pg_stat_sys_tables`  |  Não  | 
|  `pg_stat_xact_all_tables`  |  Não  | 
|  `pg_stat_xact_sys_tables`  |  Não  | 
|  `pg_stat_xact_user_functions`  |  Não  | 
|  `pg_stat_xact_user_tables`  |  Não  | 
|  `pg_statio_sys_indexes`  |  Não  | 
|  `pg_statio_sys_sequences`  |  Não  | 
|  `pg_statio_sys_tables`  |  Não  | 
|  `pg_statio_user_indexes`  |  Não  | 

### A visualização sys.jobs
<a name="dsql-sys-jobs"></a>

`sys.jobs` fornece informações sobre o status dos trabalhos assíncronos. Por exemplo, após a [criação de um índice assíncrono](working-with-create-index-async.md), o Aurora DSQL exibe um `job_uuid`. Você pode usar esse `job_uuid` com `sys.jobs` para pesquisar o status do trabalho.

```
SELECT * FROM sys.jobs;
```

O Aurora DSQL exibe uma resposta semelhante à seguinte:

```
           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
```

A tabela a seguir descreve as colunas na visualização `sys.jobs`.


**Colunas na visualização sys.jobs**  

| Coluna | Tipo | Descrição | 
| --- | --- | --- | 
| job\$1id | text | Um UUID de base 32 que representa o trabalho. | 
| status | text | O status atual do trabalho. Os valores possíveis são submitted, processing, completed e failed. Para obter mais informações, consulte [Valores de status de sys.jobs](#dsql-sys-jobs-status-values). | 
| details | text | Qualquer informação relevante sobre o trabalho. Um motivo detalhado é fornecido se o trabalho falha. | 
| job\$1type | text | O tipo de trabalho assíncrono. Os valores possíveis são: INDEX\$1BUILD: uma construção de índice assíncrona. ANALYZE: um trabalho de análise automática enviado pelo sistema. DROP: remove dados físicos após uma operação DROP TABLE ou DROP INDEX. | 
| class\$1id | oid | O OID da tabela de catálogo que contém o objeto. | 
| object\$1id | oid | O OID do objeto. | 
| object\$1name | text | O nome totalmente qualificado do atuador. Os trabalhos DROP não podem fazer referência a objetos já descartados. Se um objeto referenciado já tiver sido descartado, object\$1name pode ser NULL. | 
| start\$1time | timestamp with time zone | A data e hora em que o trabalho foi enviado. | 
| update\$1time | timestamp with time zone | A data e hora em que o trabalho foi atualizado pela última vez. | 


**Valores de status de sys.jobs**  

| Status | Descrição | 
| --- | --- | 
| submitted | A tarefa foi enviada, mas o Aurora DSQL ainda não começou a processá-la. | 
| processing | O Aurora DSQL está processando a tarefa. | 
| failed | A tarefa falhou. Consulte a coluna details para obter mais informações. | 
| completed | O Aurora DSQL concluiu a tarefa com êxito. | 

### A visualização sys.iam\$1pg\$1role\$1mappings
<a name="dsql-sys-iam-pg-role-mappings"></a>

A visualização `sys.iam_pg_role_mappings` fornece informações sobre as permissões concedidas aos usuários do IAM. Por exemplo, se `DQSLDBConnect` for um perfil do IAM que dá ao Aurora DSQL acesso a não administradores e um usuário chamado `testuser` receber o perfil `DQSLDBConnect` e as permissões correspondentes, você poderá consultar a visualização `sys.iam_pg_role_mappings` para ver quais usuários recebem quais permissões.

```
SELECT * FROM sys.iam_pg_role_mappings;
```

## Consultas úteis de metadados do sistema
<a name="dsql-useful-system-queries"></a>

Use essas consultas para acessar estatísticas da tabela e metadados do sistema sem realizar operações caras, como verificações completas da tabela.

### Apurar a contagem estimada de linhas de uma tabela
<a name="dsql-get-row-count"></a>

Para apurar a contagem aproximada de linhas em uma tabela sem realizar uma verificação completa, use a seguinte consulta:

```
SELECT reltuples FROM pg_class WHERE relname = 'table_name';
```

Esse comando retorna uma saída semelhante à seguinte:

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

Essa abordagem é mais eficiente do que `SELECT COUNT(*)` para tabelas grandes no Aurora DSQL.

### Obter a versão principal atual do Aurora DSQL
<a name="dsql-get-major-version"></a>

Para obter a versão principal atual do cluster do Aurora DSQL, use a seguinte consulta:

```
SELECT * FROM sys.dsql_major_version();
```

Esse comando retorna uma saída semelhante à seguinte:

```
 dsql_major_version
--------------------
                  1
```

Isso retorna a versão principal em que a conexão SQL está ativada no Aurora DSQL.

### Obter a versão atual do PostgreSQL
<a name="dsql-get-pg-version"></a>

Para obter a versão atual do PostgreSQL do cluster do Aurora DSQL, use a seguinte consulta:

```
SHOW server_version;
```

Esse comando retorna uma saída semelhante à seguinte:

```
 server_version
----------------
 16.13
```

Isso retorna a versão do PostgreSQL em que a conexão SQL está ativada no Aurora DSQL.

## O comando `ANALYZE`
<a name="working-with-system-tables-analyze"></a>

 O comando `ANALYZE `coleta estatísticas sobre o conteúdo das tabelas no banco de dados e armazena os resultados na visualização de sistema `pg_stats`. Posteriormente, o planejador de consultas usa essas estatísticas para ajudar a determinar os planos de execução mais eficientes para as consultas.

 No Aurora DSQL, não é possível executar o comando `ANALYZE` em uma transação explícita. `ANALYZE` não está sujeito ao limite de tempo da transação do banco de dados. 

 Para reduzir a necessidade de intervenção manual e manter as estatísticas sempre atualizadas, o Aurora DSQL executa automaticamente `ANALYZE` como um processo em segundo plano. Esse trabalho em segundo plano é acionado automaticamente com base na taxa de alteração observada na tabela. Ele está vinculado ao número de linhas (tuplas) que foram inseridas, atualizadas ou excluídas desde a última análise. 

 `ANALYZE` é executado de forma assíncrona em segundo plano e sua atividade pode ser monitorada na visualização de sistema sys.jobs com a seguinte consulta: 

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

**Considerações importantes**

**nota**  
 Os trabalhos `ANALYZE` são cobrados como outros trabalhos assíncronos no Aurora DSQL. Quando você modifica uma tabela, isso pode acionar indiretamente um trabalho automático de coleta de estatísticas em segundo plano, o que pode resultar em cobranças de medição devido à atividade associada no nível do sistema. 

 Os trabalhos `ANALYZE` em segundo plano, acionados automaticamente, coletam os mesmos tipos de estatística de um `ANALYZE` manual e os aplicam por padrão às tabelas do usuário. As tabelas de sistema e de catálogo são excluídas desse processo automatizado. 