Domanda

Da documento PostgreSQL, lo so vuoto può saltare le pagine che sono già contrassegnati nella mappa di visibilità, in modo di avanzamento a vuoto solo le pagine di vuoto che richiede il vuoto, e noi chiamiamo questo vuoto partival; A volte tutte le pagine di una tabella capita di richiedere l'aspirapolvere per rimuovere la versione fila morti, noi chiamiamo questo vuoto tavolo intero (non vuoto completo), La mia domanda è: come possiamo vedere se il vuoto è un vuoto parziale o aspirazione del piano complesso, la seguente è l'uscita del vuoto verbose commond, possiamo giudicare da questo?

--vacuum verbose 
mydb=> vacuum verbose test_vacuum2;
INFO:  vacuuming "mydb.test_vacuum2"
INFO:  "test_vacuum2": found 0 removable, 774 nonremovable row versions in 5 out of 5 pages
DETAIL:  0 dead row versions cannot be removed yet.
There were 226 unused item pointers.
0 pages are entirely empty.
CPU 0.00s/0.00u sec elapsed 0.00 sec.
VACUUM
È stato utile?

Soluzione

Non credo che si può dire dal "verbose" messa in vendita se le pagine sono stati ignorati perché erano noti per contenere tuple solo visibili.

Credo che sarà solo le pagine di vuoto contrassegnato come "tutti visibili" se decide di congelare tuple nella tabella, sia a causa di avvicinamento transazione avvolgente o perché è stato eseguito in modo esplicito VACUUM con l'opzione FREEZE. (Se si utilizza il file eseguibile a riga di comando vacuumdb, questa è l'opzione -F.)

Nel nostro negozio abbiamo integrare l'attività autovacuum con un VACUUM FREEZE ANALYZE programmata sulla base di dati durante le ore non di punta. Che riduce al minimo il sovraccarico di autovacuum nelle ore di punta, e un po 'migliora di query prestazioni, perché i controlli sono più semplici di visibilità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top