Condividi tramite


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

Importante

Azure Cosmos DB per PostgreSQL non è più supportato per i nuovi progetti. Non usare questo servizio per i nuovi progetti. Usare invece uno dei due servizi seguenti:

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 di codice 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