

# Tablas y comandos del sistema en Aurora DSQL
<a name="working-with-systems-tables"></a>

Consulte las secciones siguientes para obtener información sobre las tablas y los catálogos del sistema compatibles con Aurora DSQL, así como sobre consultas útiles para obtener información sobre el sistema, como la versión.

## Tablas del sistema
<a name="working-with-system-tables-queries"></a>

Aurora DSQL es compatible con PostgreSQL, por lo que muchas [tablas](https://www.PostgreSQL.org/docs/current/catalogs-overview.html) y [vistas de catálogo del sistema](https://www.PostgreSQL.org/docs/current/views.html) de PostgreSQL también existen en Aurora DSQL.

### Tablas y vistas de catálogo de PostgreSQL importantes
<a name="dsql-catalog-tables"></a>

En la siguiente tabla se describen las tablas y las vistas más comunes que podría utilizar en Aurora DSQL.


| Nombre | Descripción | 
| --- | --- | 
|  `pg_namespace`  |  Información sobre todos los esquemas  | 
|  `pg_tables`  |  Información sobre todas las tablas  | 
|  `pg_attribute`  |  Información sobre todos los atributos  | 
|  `pg_views`  |  Información sobre vistas (pre)definidas  | 
|  `pg_class`  |  Describe todas las tablas, columnas, índices y objetos similares  | 
|  `pg_stats`  |  Una vista sobre las estadísticas del planificador  | 
|  `pg_user`  |  Información sobre usuarios  | 
|  `pg_roles`  |  Información sobre usuarios y grupos  | 
|  `pg_indexes`  |  Enumera todos los índices  | 
|  `pg_constraint`  |  Enumera las restricciones de las tablas  | 

### Tablas de catálogo admitidas y no admitidas
<a name="dsql-catalog-tables-supported"></a>

En la siguiente tabla se indican las tablas admitidas y no admitidas en Aurora DSQL.


| Nombre | Aplicable a Aurora DSQL | 
| --- | --- | 
|  `pg_aggregate`  |  No  | 
|  `pg_am`  |  Sí  | 
|  `pg_amop`  |  No  | 
|  `pg_amproc`  |  No  | 
|  `pg_attrdef`  |  Sí  | 
|  `pg_attribute`  |  Sí  | 
|  `pg_authid`  |  No (utilice `pg_roles`)  | 
|  `pg_auth_members`  |  Sí  | 
|  `pg_cast`  |  Sí  | 
|  `pg_class`  |  Sí  | 
|  `pg_collation`  |  Sí  | 
|  `pg_constraint`  |  Sí  | 
|  `pg_conversion`  |  No  | 
|  `pg_database`  |  No  | 
|  `pg_db_role_setting`  |  Sí  | 
|  `pg_default_acl`  |  Sí  | 
|  `pg_depend`  |  Sí  | 
|  `pg_description`  |  Sí  | 
|  `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`  |  Sí  | 
|  `pg_inherits`  |  Sí  | 
|  `pg_init_privs`  |  No  | 
|  `pg_language`  |  No  | 
|  `pg_largeobject`  |  No  | 
|  `pg_largeobject_metadata`  |  Sí  | 
|  `pg_namespace`  |  Sí  | 
|  `pg_opclass`  |  No  | 
|  `pg_operator`  |  Sí  | 
|  `pg_opfamily`  |  No  | 
|  `pg_parameter_acl`  |  Sí  | 
|  `pg_partitioned_table`  |  No  | 
|  `pg_policy`  |  No  | 
|  `pg_proc`  |  No  | 
|  `pg_publication`  |  No  | 
|  `pg_publication_namespace`  |  No  | 
|  `pg_publication_rel`  |  No  | 
|  `pg_range`  |  Sí  | 
|  `pg_replication_origin`  |  No  | 
|  `pg_rewrite`  |  No  | 
|  `pg_seclabel`  |  No  | 
|  `pg_sequence`  |  No  | 
|  `pg_shdepend`  |  Sí  | 
|  `pg_shdescription`  |  Sí  | 
|  `pg_shseclabel`  |  No  | 
|  `pg_statistic`  |  Sí  | 
|  `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`  |  Sí  | 
|  `pg_ts_config_map`  |  Sí  | 
|  `pg_ts_dict`  |  Sí  | 
|  `pg_ts_parser`  |  Sí  | 
|  `pg_ts_template`  |  Sí  | 
|  `pg_type`  |  Sí  | 
|  `pg_user_mapping`  |  No  | 

### Vistas del sistema admitidas y no admitidas
<a name="dsql-system-tables-supported"></a>

En la siguiente tabla se indican las vistas admitidas y no admitidas en Aurora DSQL.


| Nombre | Aplicable a Aurora DSQL | 
| --- | --- | 
|  `pg_available_extensions`  |  No  | 
|  `pg_available_extension_versions`  |  No  | 
|  `pg_backend_memory_contexts`  |  Sí  | 
|  `pg_config`  |  No  | 
|  `pg_cursors`  |  No  | 
|  `pg_file_settings`  |  No  | 
|  `pg_group`  |  Sí  | 
|  `pg_hba_file_rules`  |  No  | 
|  `pg_ident_file_mappings`  |  No  | 
|  `pg_indexes`  |  Sí  | 
|  `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`  |  Sí  | 
|  `pg_rules`  |  No  | 
|  `pg_seclabels`  |  No  | 
|  `pg_sequences`  |  No  | 
|  `pg_settings`  |  Sí  | 
|  `pg_shadow`  |  Sí  | 
|  `pg_shmem_allocations`  |  Sí  | 
|  `pg_stats`  |  Sí  | 
|  `pg_stats_ext`  |  No  | 
|  `pg_stats_ext_exprs`  |  No  | 
|  `pg_tables`  |  Sí  | 
|  `pg_timezone_abbrevs`  |  Sí  | 
|  `pg_timezone_names`  |  Sí  | 
|  `pg_user`  |  Sí  | 
|  `pg_user_mappings`  |  No  | 
|  `pg_views`  |  Sí  | 
|  `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`  |  Sí  | 
|  `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  | 

### La vista sys.jobs
<a name="dsql-sys-jobs"></a>

`sys.jobs` proporciona información sobre el estado de los trabajos asíncronos. Por ejemplo, después de [crear un índice asíncrono](working-with-create-index-async.md), Aurora DSQL devuelve un `job_uuid`. Puede utilizar este `job_uuid` con `sys.jobs` para consultar el estado del trabajo.

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

Aurora DSQL devuelve una respuesta similar a la siguiente.

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

En la siguiente tabla se describen las columnas de la vista `sys.jobs`.


**Columnas de la vista sys.jobs**  

| Columna | Tipo | Descripción | 
| --- | --- | --- | 
| job\$1id | text | Un UUID de base 32 que representa el trabajo. | 
| status | text | El estado actual del trabajo. Los valores posibles son submitted, processing, completed y failed. Para obtener más información, consulte [Valores de estado de sys.jobs](#dsql-sys-jobs-status-values). | 
| details | text | Cualquier dato relevante sobre el trabajo. Si el trabajo falla, se proporciona un motivo detallado. | 
| job\$1type | text | El tipo de trabajo asíncrono. Los valores posibles son: INDEX\$1BUILD: una creación de índices asíncrona. ANALYZE: un trabajo de análisis automático enviado por el sistema. DROP: elimina los datos físicos tras una operación de DROP TABLE o DROP INDEX. | 
| class\$1id | oid | El OID de la tabla de catálogo que contiene el objeto. | 
| object\$1id | oid | El OID del objeto. | 
| object\$1name | text | El nombre completo del objeto. Los trabajos de DROP no pueden hacer referencia a objetos que ya se han eliminado. Si el objeto al que se hace referencia ya se ha eliminado, el valor object\$1name puede ser NULL. | 
| start\$1time | timestamp with time zone | La marca de tiempo en la que se envió el trabajo. | 
| update\$1time | timestamp with time zone | La marca de tiempo en la que se actualizó por última vez la fila del trabajo. | 


**Valores de estado de sys.jobs**  

| Estado | Descripción | 
| --- | --- | 
| submitted | La tarea se ha enviado, pero Aurora DSQL aún no ha empezado a procesarla. | 
| processing | Aurora DSQL está procesando la tarea. | 
| failed | La tarea ha fallado. Consulte la columna details para obtener más información. | 
| completed | Aurora DSQL ha completado la tarea correctamente. | 

### La vista sys.iam\$1pg\$1role\$1mappings
<a name="dsql-sys-iam-pg-role-mappings"></a>

La vista `sys.iam_pg_role_mappings` proporciona información sobre los permisos concedidos a los usuarios de IAM. Por ejemplo, si `DQSLDBConnect` es un rol de IAM que da acceso a Aurora DSQL a usuarios no administradores y a un usuario llamado `testuser` se le concede el rol `DQSLDBConnect` y los permisos correspondientes, puede consultar la vista `sys.iam_pg_role_mappings` para ver qué permisos se han concedido a qué usuarios.

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

## Consultas de metadatos de sistemas útiles
<a name="dsql-useful-system-queries"></a>

Utilice estas consultas para obtener estadísticas de tabla y metadatos de sistema sin realizar operaciones costosas como escanear tablas completas.

### Obtención del recuento estimado de filas de una tabla
<a name="dsql-get-row-count"></a>

Para obtener el recuento aproximado de filas en una tabla sin realizar un escaneo de tabla completo, use la consulta siguiente:

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

El comando devuelve un resultado similar al siguiente:

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

Este enfoque es más eficaz que en el caso de `SELECT COUNT(*)` para las tablas grandes en Aurora DSQL.

### Obtención de la versión principal actual de Aurora DSQL
<a name="dsql-get-major-version"></a>

Para obtener la versión principal actual del clúster de Aurora DSQL, utilice la siguiente consulta:

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

El comando devuelve un resultado similar al siguiente:

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

Esto devuelve la versión principal en la que se encuentra la conexión SQL en Aurora DSQL.

### Obtención de la versión actual de la plataforma
<a name="dsql-get-pg-version"></a>

Para obtener la versión actual de PostgreSQL del clúster de Aurora DSQL, utilice la siguiente consulta:

```
SHOW server_version;
```

El comando devuelve un resultado similar al siguiente:

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

Esto devuelve la versión en la que se encuentra la conexión SQL en Aurora DSQL.

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

 El comando `ANALYZE ` recopila estadísticas sobre el contenido de las tablas de la base de datos y almacena los resultados en la vista del sistema `pg_stats`. Posteriormente, el planificador de consultas utiliza estas estadísticas para ayudar a determinar los planes de ejecución más eficaces para las consultas.

 En Aurora DSQL, no puede ejecutar el comando `ANALYZE` en una transacción explícita. `ANALYZE` no está sujeto al límite de tiempo de espera de la transacción de la base de datos. 

 Para reducir la necesidad de intervención manual y mantener las estadísticas actualizadas de manera coherente, Aurora DSQL ejecuta automáticamente `ANALYZE` como un proceso en segundo plano. Este trabajo en segundo plano se activa automáticamente en función de la tasa de cambio observada en la tabla. Está vinculado al número de filas (tuplas) que se han insertado, actualizado o eliminado desde el último análisis. 

 `ANALYZE` se ejecuta de forma asíncrona en segundo plano y su actividad se puede supervisar en la vista del sistema sys.jobs con la siguiente consulta: 

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

**Consideraciones clave**

**nota**  
 Los trabajos `ANALYZE` se facturan como otros trabajos asíncronos en Aurora DSQL. Cuando modifica una tabla, esto puede desencadenar indirectamente un trabajo automático de recopilación de estadísticas en segundo plano, lo que puede provocar cargos de medición debido a la actividad asociada al nivel del sistema. 

 Los trabajos `ANALYZE` en segundo plano, que se activan automáticamente, recopilan los mismos tipos de estadísticas que los `ANALYZE` manuales y los aplican de forma predeterminada a las tablas de los usuarios. Las tablas del sistema y del catálogo se excluyen de este proceso automatizado. 