Tentukan ukuran tabel dan relasi

BERLAKU UNTUK: Azure Database for PostgreSQL - Hyperscale (Citus)

Cara biasa untuk menemukan ukuran tabel di PostgreSQL, pg_total_relation_size, secara drastis di bawah laporan ukuran tabel terdistribusi pada Hyperscale (Citus). Semua fungsi ini yang berlaku pada grup server Hyperscale (Citus) adalah untuk menunjukkan ukuran tabel pada simpul koordinator. Pada kenyataannya, data dalam tabel terdistribusi berfungsi pada simpul pekerja (dalam pecahan), bukan pada koordinator. Pengukuran ukuran tabel terdistribusi yang sebenarnya diperoleh berupa jumlah ukuran pecahan. Hyperscale (Citus) menyediakan fungsi pembantu untuk meminta informasi ini.

Fungsi Mengembalikan
citus_relation_size(relation_name)
  • Ukuran data aktual dalam tabel(“garpu utama ").
  • Relasi bisa berupa nama tabel atau indeks.
citus_table_size(relation_name)
citus_total_relation_size(relation_name)
  • citus_table_size plus:

    • ukuran indeks

Fungsi-fungsi ini dianalogikan dengan tiga fungsi ukuran objekPostgreSQL standar, kecuali jika tidak dapat terhubung ke simpul, maka fungsi itu akan error sama sekali.

Contoh

Berikut cara mencantumkan ukuran semua tabel terdistribusi:

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 │
└───────────────┴───────┘

Langkah berikutnya