Sdílet prostřednictvím


Určení velikosti tabulky a relací ve službě Azure Cosmos DB for PostgreSQL

PLATÍ PRO: Azure Cosmos DB for PostgreSQL (využívá rozšíření databáze Citus pro PostgreSQL)

Obvyklý způsob, jak najít velikosti tabulek v PostgreSQL, pg_total_relation_sizeje výrazně podvyšovat velikost distribuovaných tabulek ve službě Azure Cosmos DB for PostgreSQL. Jediné, co tato funkce dělá v clusteru, je odhalit velikost tabulek na koordinačním uzlu. Ve skutečnosti se data v distribuovaných tabulkách nacházejí na pracovních uzlech (v horizontálních oddílech), ne v koordinátoru. Skutečná míra velikosti distribuované tabulky se získá jako součet velikostí horizontálních oddílů. Azure Cosmos DB for PostgreSQL poskytuje pomocné funkce pro dotazování těchto informací.

Funkce Návraty
citus_relation_size(relation_name)
  • Velikost skutečných dat v tabulce ("hlavní fork").
  • Relace může být název tabulky nebo indexu.
citus_table_size(relation_name)
citus_total_relation_size(relation_name)
  • citus_table_size plus:

    • velikost indexů

Tyto funkce jsou podobné třem standardním funkcím velikosti objektů PostgreSQL, ale pokud se nemůžou připojit k uzlu, dojde k chybě.

Příklad

Tady je postup, jak zobrazit seznam velikostí všech distribuovaných tabulek:

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

Výstup:

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

Další kroky