Dela via


Fastställa tabell- och relationsstorlek i Azure Cosmos DB för PostgreSQL

GÄLLER FÖR: Azure Cosmos DB for PostgreSQL (drivs av Citus-databastillägget till PostgreSQL)

Det vanliga sättet att hitta tabellstorlekar i PostgreSQL, pg_total_relation_size, underrapporterar drastiskt storleken på distribuerade tabeller i Azure Cosmos DB för PostgreSQL. Allt den här funktionen gör i ett kluster är att visa storleken på tabellerna på koordinatornoden. I verkligheten finns data i distribuerade tabeller på arbetsnoderna (i shards), inte på koordinatorn. Ett sant mått på distribuerad tabellstorlek erhålls som en summa av shardstorlekar. Azure Cosmos DB for PostgreSQL tillhandahåller hjälpfunktioner för att fråga efter den här informationen.

Funktion Returer
citus_relation_size(relation_name)
  • Storleken på faktiska data i tabellen ("huvudgrenen").
  • En relation kan vara namnet på en tabell eller ett index.
citus_table_size(relation_name)
  • citus_relation_size plus:

citus_total_relation_size(relation_name)
  • citus_table_size plus:

    • indexens storlek

Dessa funktioner motsvarar tre av postgreSQL-standardobjektstorleksfunktionerna, förutom om de inte kan ansluta till en nod.

Exempel

Så här listar du storlekarna för alla distribuerade tabeller:

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

Utdata:

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

Nästa steg