次の方法で共有


Azure Cosmos DB for PostgreSQL でテーブルと関係のサイズを確認する

適用対象: Azure Cosmos DB for PostgreSQL (PostgreSQL の Citus データベース拡張機能を利用)

PostgreSQL でテーブル サイズを確認するための通常の方法 pg_total_relation_size では、Azure Cosmos DB for PostgreSQL での分散テーブルのサイズが極端に小さく報告されます。 この関数は、クラスターでは、コーディネーター ノード上のテーブルのサイズを明らかにするだけです。 実際には、分散テーブル内のデータはコーディネーター ノードではなく、ワーカー ノード (シャード内) 上にあります。 分散テーブル サイズの実際の値は、シャード サイズの合計として取得されます。 Azure Cosmos DB for PostgreSQL には、この情報のクエリを実行するためのヘルパー関数が用意されています。

機能 戻り値
citus_relation_size(relation_name)
  • テーブル ("メインのフォーク") 内の実際のデータのサイズ。
  • リレーションにはテーブルまたはインデックスの名前を指定できます。
citus_table_size(relation_name)
citus_total_relation_size(relation_name)
  • citus_table_size に加えて次の情報:

    • インデックスのサイズ

これらの関数は、標準の PostgreSQL オブジェクト サイズ関数のうちの 3 つに似ていますが、ノードに接続できない場合はエラーになる点が異なります。

すべての分散テーブルのサイズを一覧表示する方法を次に示します。

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

出力:

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

次のステップ