it-swarm-eu.dev

Jaký je význam n_live_tup a n_dead_tup v pg_stat_user_tables

Co znamená n_live_tup a n_dead_tup v pg_stat_user_tables nebo pgstattuple?

20
Majid Azimi

Tyto dva sloupce jsou výsledkem

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;

Představuje počet živých a mrtvých řádků (n-tic) v tabulce.
Najděte ty funkce v manuál .

Mrtvé řádky jsou odstraněny řádky, které budou později znovu použity pro nové řádky z INSERTs nebo UPDATEs (mezera, nikoli data). Některé mrtvé řádky (nebo vyhrazené volné místo) mohou být užitečné zejména pro aktualizace HOT (Heap-Only Tuples), které mohou efektivně znovu využít místo na stejné datové stránce. Více na H.O.T .:

Nebo mrtvé řádky mohou být odstraněny pomocí VACUUM FULL (nebo prostý VACUUM, pokud bude mít štěstí) nebo podobné operace na stole, čímž se odpovídajícím způsobem zmenší fyzická tabulka.

Kdykoli je řádek odstraněn nebo aktualizován, stará verze řádku se stane neviditelnou pro všechny ostatní transakce počínaje potvrzením transakce. Řádek je zcela mrtvý, jakmile neexistují žádné další nevázané starší transakce. To je nezbytné, aby PostgreSQL MVCC model zvládal souběžnost.

To jsou jen statistiky . Je třeba povolit sběr statistik v postgresql.conf pokud chcete, aby byly automaticky aktualizovány. track_counts by však mělo být ve výchozím nastavení zapnuto. Mějte na paměti, že statistiky nejsou aktualizovány okamžitě. Přečtěte si o tom více v manuál .

29