

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Tables et commandes système dans Aurora DSQL
<a name="working-with-systems-tables"></a>

Consultez les sections suivantes pour en savoir plus sur les tables système et les catalogues pris en charge dans Aurora DSQL, ainsi que sur les requêtes utiles pour récupérer des informations sur le système, telles que la version.

## Tables système
<a name="working-with-system-tables-queries"></a>

Aurora DSQL est compatible avec PostgreSQL, de sorte que de [nombreuses tables du catalogue système](https://www.PostgreSQL.org/docs/current/catalogs-overview.html) et de nombreuses [vues](https://www.PostgreSQL.org/docs/current/views.html) de PostgreSQL existent également dans Aurora DSQL.

### Tables et vues du catalogue PostgreSQL importantes
<a name="dsql-catalog-tables"></a>

Le tableau suivant décrit les tables et les vues les plus courantes que vous pouvez utiliser dans Aurora DSQL.


| Nom | Description | 
| --- | --- | 
|  `pg_namespace`  |  Informations sur tous les schémas  | 
|  `pg_tables`  |  Informations sur toutes les tables  | 
|  `pg_attribute`  |  Informations sur tous les attributs  | 
|  `pg_views`  |  Informations sur les vues (pré)-définies  | 
|  `pg_class`  |  Décrit toutes les tables, toutes les colonnes, tous les index et tous les objets similaires  | 
|  `pg_stats`  |  Vue des statistiques du planificateur  | 
|  `pg_user`  |  Informations sur les utilisateurs  | 
|  `pg_roles`  |  Informations sur les utilisateurs et les groupes  | 
|  `pg_indexes`  |  Répertorie tous les index  | 
|  `pg_constraint`  |  Répertorie les contraintes sur les tables  | 

### Tables de catalogue prises en charge et non prises en charge
<a name="dsql-catalog-tables-supported"></a>

Le tableau suivant indique les tables prises en charge et celles qui ne le sont pas dans Aurora DSQL.


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

### Vues système prises en charge et non prises en charge
<a name="dsql-system-tables-supported"></a>

Le tableau suivant indique les vues prises en charge et celles qui ne le sont pas dans Aurora DSQL.


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

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

`sys.jobs` fournit des informations sur le statut des tâches asynchrones. Par exemple, après avoir [créé un index asynchrone](working-with-create-index-async.md), Aurora DSQL renvoie `job_uuid`. Vous pouvez utiliser `job_uuid` avec `sys.jobs` pour consulter le statut de la tâche.

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

Aurora DSQL renvoie une réponse semblable à ce qui suit.

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

Le tableau suivant décrit les colonnes de la `sys.jobs` vue.


**colonnes d'affichage sys.jobs**  

| Colonne | Type | Description | 
| --- | --- | --- | 
| job\$1id | text | Un UUID en base 32 représentant la tâche. | 
| status | text | État actuel de la tâche. Les valeurs possibles sont submitted, processing, completed et failed. Pour de plus amples informations, veuillez consulter [valeurs de statut sys.jobs](#dsql-sys-jobs-status-values). | 
| details | text | Tous les détails pertinents concernant le poste. Si la tâche échoue, une raison détaillée est fournie. | 
| job\$1type | text | Type de tâche asynchrone. Les valeurs possibles sont les suivantes : INDEX\$1BUILD — une construction d'index asynchrone. ANALYZE— une tâche d'analyse automatique soumise par le système. DROP— supprime les données physiques après une DROP INDEX opération DROP TABLE OR. | 
| class\$1id | oid | L'OID de la table de catalogue qui contient l'objet. | 
| object\$1id | oid | L'OID de l'objet. | 
| object\$1name | text | Nom complet de l'objet. DROPles tâches ne peuvent pas référencer des objets déjà déposés. Si un objet référencé a déjà été supprimé, il object\$1name peut être NULL. | 
| start\$1time | timestamp with time zone | Horodatage auquel le travail a été soumis. | 
| update\$1time | timestamp with time zone | Horodatage auquel la ligne de tâche a été mise à jour pour la dernière fois. | 


**valeurs de statut sys.jobs**  

| Statut | Description | 
| --- | --- | 
| submitted | La tâche est envoyée, mais Aurora DSQL n’a pas encore commencé à la traiter. | 
| processing | Aurora DSQL est en train de traiter la tâche. | 
| failed | La tâche a échoué. Consultez la details colonne pour plus d'informations. | 
| completed | Aurora DSQL a terminé la tâche avec succès. | 

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

La vue `sys.iam_pg_role_mappings` fournit des informations sur les autorisations accordées aux utilisateurs IAM. Par exemple, si `DQSLDBConnect` est un rôle IAM qui donne accès à Aurora DSQL à des non-administrateurs et qu’un utilisateur nommé `testuser` reçoit le rôle `DQSLDBConnect` et les autorisations correspondantes, vous pouvez interroger la vue `sys.iam_pg_role_mappings` pour voir quels utilisateurs ont obtenu quelles autorisations.

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

## Requêtes utiles sur les métadonnées du système
<a name="dsql-useful-system-queries"></a>

Utilisez ces requêtes pour obtenir les statistiques des tables et les métadonnées du système sans effectuer d'opérations coûteuses telles que l'analyse complète des tables.

### Obtenir une estimation du nombre de lignes pour un tableau
<a name="dsql-get-row-count"></a>

Pour obtenir le nombre approximatif de lignes d'une table sans effectuer une analyse complète de la table, utilisez la requête suivante :

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

La commande renvoie un résultat semblable à ce qui suit :

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

Cette approche est plus efficace que `SELECT COUNT(*)` pour les grandes tables dans Aurora DSQL.

### Obtenir la version majeure actuelle d'Aurora DSQL
<a name="dsql-get-major-version"></a>

Pour obtenir la version majeure actuelle du cluster Aurora DSQL, utilisez la requête suivante :

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

La commande renvoie un résultat semblable à ce qui suit :

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

Cela renvoie la version principale sur laquelle se trouve la connexion SQL dans Aurora DSQL.

### Obtenir la version actuelle de PostgreSQL
<a name="dsql-get-pg-version"></a>

Pour obtenir la version actuelle de PostgreSQL du cluster Aurora DSQL, utilisez la requête suivante :

```
SHOW server_version;
```

La commande renvoie un résultat semblable à ce qui suit :

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

Cela renvoie la version de PostgreSQL utilisée par la connexion SQL dans Aurora DSQL.

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

 La commande `ANALYZE `collecte des statistiques sur le contenu des tables de la base de données et enregistre les résultats dans la vue système `pg_stats`. Le planificateur de requêtes utilise ensuite ces statistiques pour déterminer les plans d’exécution les plus efficaces pour les requêtes.

 Dans Aurora DSQL, vous ne pouvez pas exécuter la commande `ANALYZE` dans le cadre d’une transaction explicite. `ANALYZE` n’est pas soumis au délai d’expiration des transactions de base de données. 

 Pour réduire le besoin d’intervention manuelle et maintenir les statistiques constamment à jour, Aurora DSQL exécute automatiquement `ANALYZE` en tant que processus d’arrière-plan. Cette tâche en arrière-plan est déclenchée automatiquement en fonction du taux de variation observé dans le tableau. Il est lié au nombre de lignes (tuples) qui ont été insérées, mises à jour ou supprimées depuis la dernière analyse. 

 `ANALYZE` s’exécute de manière asynchrone en arrière-plan et son activité peut être surveillée dans la vue système sys.jobs avec la requête suivante : 

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

**Considérations clés**

**Note**  
 Les tâches `ANALYZE` sont facturées comme les autres tâches asynchrones dans Aurora DSQL. Lorsque vous modifiez une table, cela peut déclencher indirectement une tâche automatique de collecte de statistiques en arrière-plan, ce qui peut entraîner des frais de comptage en raison de l’activité associée au niveau du système. 

 Les tâches `ANALYZE` en arrière-plan, déclenchées automatiquement, collectent les mêmes types de statistiques qu’une `ANALYZE` manuelle et les appliquent par défaut aux tables utilisateur. Les tables du système et du catalogue sont exclues de ce processus automatisé. 