Udostępnij za pośrednictwem


Określanie rozmiaru tabeli i relacji w usłudze Azure Cosmos DB for PostgreSQL

DOTYCZY: Usługa Azure Cosmos DB for PostgreSQL (obsługiwana przez rozszerzenie bazy danych Citus do bazy danych PostgreSQL)

Zwykle sposób znajdowania rozmiarów tabel w usłudze PostgreSQL, pg_total_relation_size, drastycznie niedostatecznie raportuje rozmiar tabel rozproszonych w usłudze Azure Cosmos DB for PostgreSQL. Ta funkcja działa w klastrze, polega na ujawnieniu rozmiaru tabel w węźle koordynatora. W rzeczywistości dane w tabelach rozproszonych są przechowywane w węzłach procesu roboczego (w fragmentach), a nie na koordynatorze. Prawdziwa miara rozmiaru tabeli rozproszonej jest uzyskiwana jako suma rozmiarów fragmentów. Usługa Azure Cosmos DB for PostgreSQL udostępnia funkcje pomocnicze do wykonywania zapytań dotyczących tych informacji.

Function Zwraca
citus_relation_size(relation_name)
  • Rozmiar rzeczywistych danych w tabeli (rozwidlenie główne).
  • Relacją może być nazwa tabeli lub indeksu.
citus_table_size(relation_name)
citus_total_relation_size(relation_name)
  • citus_table_size plus:

    • rozmiar indeksów

Te funkcje są analogiczne do trzech standardowych funkcji rozmiaru obiektu PostgreSQL, z wyjątkiem sytuacji, gdy nie mogą nawiązać połączenia z węzłem, wymykają się.

Przykład

Oto jak wyświetlić listę rozmiarów wszystkich tabel rozproszonych:

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

Wyjście:

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

Następne kroki

  • Dowiedz się, jak skalować klaster w celu przechowywania większej ilości danych.
  • Rozróżnianie typów tabel w klastrze.
  • Zobacz inne przydatne zapytania diagnostyczne.