Freigeben über


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

Von Bedeutung

Azure Cosmos DB für PostgreSQL wird für neue Projekte nicht mehr unterstützt. Verwenden Sie diesen Dienst nicht für neue Projekte. Verwenden Sie stattdessen einen der folgenden beiden Dienste:

  • Verwenden Sie für hochskalige Szenarien eine verteilte Datenbanklösung mit Azure Cosmos DB für NoSQL, die ein 99,999%iges Verfügbarkeits-Service-Level-Agreement (SLA), eine sofortige Autoskalierung und ein automatisches regionenübergreifendes Failover bietet.

  • Verwenden Sie die Elastic Clusters-Funktion von Azure Database for PostgreSQL für geshartete PostgreSQL-Datenbanken mithilfe der Open-Source-Erweiterung Citus.

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 Rückgabe
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