

# 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\_id | 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\_type | text | O tipo de trabalho assíncrono. Os valores possíveis são: INDEX\_BUILD: 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\_id | oid | O OID da tabela de catálogo que contém o objeto. | 
| object\_id | oid | O OID do objeto. | 
| object\_name | 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\_name pode ser NULL. | 
| start\_time | timestamp with time zone | A data e hora em que o trabalho foi enviado. | 
| update\_time | 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\_pg\_role\_mappings
<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. 