Partager via


Déterminer la taille des tables et des relations dans Azure Cosmos DB for PostgreSQL

Important

Azure Cosmos DB pour PostgreSQL n’est plus pris en charge pour les nouveaux projets. N’utilisez pas ce service pour les nouveaux projets. Utilisez plutôt l’un des deux services suivants :

  • Utilisez Azure Cosmos DB pour NoSQL pour une solution de base de données distribuée conçue pour des scénarios à grande échelle avec un contrat de niveau de service de disponibilité (SLA) de 99,999%, une mise à l’échelle automatique instantanée et un basculement automatique entre plusieurs régions.

  • Utilisez la fonctionnalité Elastic Clusters d'Azure Database pour PostgreSQL pour un PostgreSQL partagé utilisant l'extension open source Citus.

La méthode habituellement utilisée pour déterminer la taille de tables dans PostgreSQL, pg_total_relation_size, sous-estime la taille des tables distribuées sur Azure Cosmos DB for PostgreSQL. Sur un cluster, cette fonction affiche la taille des tables du nœud coordinateur. En réalité, les données des tables distribuées résident sur les nœuds Worker (dans des partitions), et non sur le coordinateur. Une mesure réelle de la taille d’une table distribuée est obtenue sous la forme d’une somme des tailles de partitions. Azure Cosmos DB pour PostgreSQL fournit des fonctions d’assistance pour interroger ces informations.

Fonction Retours
citus_relation_size(nom_relation)
  • Taille des données réelles dans la table (la « branche principale »).
  • Une relation peut représenter le nom d’une table ou d’un index.
citus_table_size(nom_relation)
citus_total_relation_size(nom_relation)
  • citus_table_size plus :

    • taille des index

Ces fonctions sont analogues à trois des fonctions de taille d’objet PostgreSQL standard, sauf si elles ne peuvent pas se connecter à un nœud, auquel cas elles génèrent une erreur.

 Exemple

Voici comment répertorier les tailles de toutes les tables distribuées :

SELECT logicalrelid AS name,
       pg_size_pretty(citus_table_size(logicalrelid)) AS size
  FROM pg_dist_partition;

Sortie :

┌───────────────┬───────┐
│     name      │ size  │
├───────────────┼───────┤
│ github_users  │ 39 MB │
│ github_events │ 37 MB │
└───────────────┴───────┘

Étapes suivantes