it-swarm.asia

Apa arti dari n_live_tup dan n_dead_tup di pg_stat_user_tables

Apa arti dari n_live_tup dan n_dead_tup di pg_stat_user_tables atau pgstattuple?

20
Majid Azimi

Kedua kolom tersebut adalah hasil dari

SELECT pg_stat_get_live_tuples(c.oid) AS n_live_tup
     , pg_stat_get_dead_tuples(c.oid) AS n_dead_tup
FROM   pg_class c;

Merupakan jumlah baris hidup dan mati (tupel) dalam tabel.
Temukan itu fungsi dalam manual .

Baris mati adalah baris yang dihapus yang nantinya akan digunakan kembali untuk baris baru dari INSERTs atau UPDATEs (spasi, bukan data). Beberapa baris mati (atau ruang kosong yang disediakan) dapat sangat berguna untuk pembaruan HOT (Heap-Only Tuples) yang dapat menggunakan kembali ruang di halaman data yang sama secara efisien. Lebih lanjut tentang H.O.T .:

Atau baris mati dapat dihapus oleh VACUUM FULL (atau polos VACUUM jika beruntung) atau operasi serupa di atas meja, sehingga menyusutkan tabel fisik sesuai.

Setiap kali baris dihapus atau diperbarui, versi baris lama menjadi tidak terlihat oleh semua transaksi lainnya dimulai setelah transaksi dilakukan. Baris tersebut benar-benar mati segera setelah tidak ada lagi transaksi lama yang tidak dikomit. Itu diperlukan untuk model MVCC PostgreSQL untuk menangani konkurensi.

Itu hanya statistik . Anda harus mengaktifkan pengumpulan statistik di postgresql.conf jika Anda ingin mereka diperbarui secara otomatis. track_counts harus diaktifkan secara default. Ingatlah bahwa statistik tidak diperbarui secara instan. Baca lebih lanjut tentang itu di manual .

29