Qual è il significato di n_live_tup e n_dead_tup in pg_stat_user_tables


20

Qual è il significato di n_live_tupe n_dead_tupin pg_stat_user_tableso pgstattuple?

Risposte:


28

Queste due colonne sono il risultato di

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;

Rappresenta il numero di righe vive e morte (tuple) nella tabella.
Trova quelle funzioni nel manuale .

Le righe morte sono righe eliminate che verranno successivamente riutilizzate per nuove righe da INSERTs o UPDATEs (lo spazio, non i dati). Alcune righe morte (o spazio libero riservato) possono essere particolarmente utili per gli aggiornamenti HOT (tuple solo heap) che possono riutilizzare lo spazio nella stessa pagina di dati in modo efficiente. Altro su HOT:

Oppure le righe morte possono essere rimosse da VACUUM FULL(o semplicemente VACUUMse diventa fortunato) o operazioni simili sulla tabella, restringendo in tal modo la tabella fisica di conseguenza.

Ogni volta che una riga viene eliminata o aggiornata, la versione della riga precedente diventa invisibile a tutte le altre transazioni a partire dall'impegno della transazione. La riga è completamente morta non appena non ci sono più transazioni precedenti senza commit. Ciò è necessario affinché il modello MVCC di PostgreSQL gestisca la concorrenza.

Quelle sono solo statistiche . È necessario abilitare la raccolta delle statistiche postgresql.confse si desidera che vengano aggiornati automaticamente. track_countsdovrebbe essere attivo di default, però. Tieni presente che le statistiche non vengono aggiornate istantaneamente. Maggiori informazioni nel manuale .


Che cosa sono le tuple solo heap? Quando emetto SELECT n_live_tup FROM pg_stat_user_tables WHEN relname = 'mytable';Perché mostra zero? mytableha 6 file.
Majid Azimi,

@MajidAzimi: ho aggiunto un po 'alla mia risposta.
Erwin Brandstetter,

5
@MajidAzimi Se vuoi saperne di più su MVCC e HoT dai un'occhiata alle diapositive della presentazione di Pavan Deolasee al PGCon'08
dbenhur

@dbenhur: bel link! La presentazione è molto ben fatta e facile da capire.
Erwin Brandstetter,

@dbenhur Il link sembra essere morto ora.
Aryeh Leib Taurog,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.