Condividi tramite


Determinare le dimensioni di tabella e relazione in Azure Cosmos DB per PostgreSQL

SI APPLICA A: Azure Cosmos DB for PostgreSQL (con tecnologia basata sull'estensione di database Citus per PostgreSQL)

Il modo consueto per trovare le dimensioni delle tabelle in PostgreSQL, pg_total_relation_size, segnala drasticamente le dimensioni delle tabelle distribuite in Azure Cosmos DB per PostgreSQL. Tutte queste operazioni vengono eseguite in un cluster per rivelare le dimensioni delle tabelle nel nodo coordinatore. In realtà, i dati nelle tabelle distribuite si trovano nei nodi di lavoro (nelle partizioni), non nel coordinatore. Una vera misura delle dimensioni della tabella distribuita viene ottenuta come somma delle dimensioni delle partizioni. Azure Cosmos DB per PostgreSQL fornisce funzioni helper per eseguire query su queste informazioni.

Funzione Valori restituiti
citus_relation_size(relation_name)
  • Dimensioni dei dati effettivi nella tabella ("fork principale").
  • Una relazione può essere il nome di una tabella o di un indice.
citus_table_size(relation_name)
citus_total_relation_size(relation_name)
  • citus_table_size più:

    • dimensioni degli indici

Queste funzioni sono analoghe a tre delle funzioni standard di dimensioni degli oggetti postgreSQL, ma se non riescono a connettersi a un nodo, danno un errore.

Esempio

Ecco come elencare le dimensioni di tutte le tabelle distribuite:

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

Output:

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

Passaggi successivi