Sdílet prostřednictvím


Určení velikosti tabulky a relačního vztahu ve službě Azure Cosmos DB for PostgreSQL

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

Obvyklý způsob, jak najít velikosti tabulek v PostgreSQL, pg_total_relation_sizevýrazně nedostatečně hlásí velikost distribuovaných tabulek ve službě Azure Cosmos DB for PostgreSQL. Všechny tyto funkce v clusteru odhalí velikost tabulek na koordinačním uzlu. Ve skutečnosti se data v distribuovaných tabulkách nacházejí v pracovních uzlech (v horizontálních oddílech), nikoli 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í.

Function 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, s výjimkou případů, kdy 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