Re: [HACKERS] Surprising dead_tuple_count from pgstattuple

2010-08-10 Thread Gordon Shannon
After much code reading, testing, and using the extremely handy pageinspect contrib to look at pages, here's what I believe is happening. I am not attempting to describe every possible scenario, only this one test path. Following my short test scenario above... - Inserted rows get line pointers

Re: [HACKERS] Surprising dead_tuple_count from pgstattuple

2010-08-07 Thread Gordon Shannon
I think this simple test highlights the question well. -- create temporary table t(x int) with (autovacuum_enabled=off); insert into t select x from generate_series(1,1,1)x; vacuum verbose t; select dead_tuple_count from pgstattuple('t');-- 0 delete from t where x = 100;

[HACKERS] Surprising dead_tuple_count from pgstattuple

2010-08-06 Thread Gordon Shannon
This is an expansion of the question I posed in this thread: http://postgresql.1045698.n5.nabble.com/Need-help-understanding-vacuum-verbose-output-tp2265895p2266912.html I am framing the question here in relation to pgstattuple. Running 8.4.4 on Centos. I have a table T with 5,063,463 rows.

Re: [HACKERS] Surprising dead_tuple_count from pgstattuple

2010-08-06 Thread Gordon Shannon
Robert Haas wrote: My thought would be is autovacuum running in the background in between these commands?. That's a good thought, but no, autovacuum_vacuum_scale_factor is set to 0.2, meaning that over 1 million dead tuples are necessary for autovacuum. Besides, if autovacuum had run, I