Bestimmen der Tabellen- und Relationsgröße in Azure Cosmos DB for PostgreSQL

GILT FÜR: Azure Cosmos DB for PostgreSQL (unterstützt von der Citus-Datenbankerweiterung auf PostgreSQL)

Beim üblichen Verfahren zum Ermitteln von Tabellengrößen in PostgreSQL mit pg_total_relation_size wird die Größe von verteilten Tabellen in Azure Cosmos DB for PostgreSQL viel zu gering angegeben. Diese Funktion gibt in einem Cluster nur Aufschluss über die Größe der Tabellen auf dem Koordinatorknoten. Tatsächlich befinden sich die Daten in verteilten Tabellen aber auf den Workerknoten (in Shards), nicht auf dem Koordinatorknoten. Ein richtiges Maß für die Größe einer verteilten Tabelle ist die Summe der Shardgrößen. Azure Cosmos DB for PostgreSQL stellt Hilfsfunktionen bereit, um diese Informationen abzufragen.

Funktion Gibt zurück
citus_relation_size(relation_name)
  • Größe der tatsächlichen Daten in der Tabelle (dem Hauptfork).
  • Eine Beziehung kann der Name einer Tabelle oder eines Indexes sein.
citus_table_size(relation_name)
citus_total_relation_size(relation_name)
  • citus_table_size plus:

    • Größe der Indizes

Diese Funktionen sind analog zu drei der standardmäßigen Objektgrößefunktionen von PostgreSQL, mit einer Ausnahme: Wenn keine Verbindung mit einem Knoten hergestellt werden kann, tritt ein Fehler auf.

Beispiel

So listen Sie die Größen aller verteilten Tabellen auf:

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

Ausgabe:

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

Nächste Schritte