| From: | "Dawid Kuroczko" <qnex42(at)gmail(dot)com> |
|---|---|
| To: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Stats not updated after rollback -- autovacuum confused. |
| Date: | 2007-05-07 05:50:07 |
| Message-ID: | 758d5e7f0705062250w7a39e5c6i438d2567216382a7@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
Hello, I have a system where there are mostly COPYs,
which insert data into a table. Ocasionally a COPY will fail (and thus,
dead rows appear), but as far as I can tell ROLLBACK is not reflected
anywhere in the pg_stats_user_tables. And since there are no rows
n_tup_upd or n_tup_del, therefore autovacuum will not fire for that table.
I see two possible solutions:
1) let rollback increment both n_tup_ins and n_tup_del (or maybe
n_tup_upd, at least)? This would be a good safeguard, I guess.
2) ANALYZE is able to see wether table is accumulating dead rows.
It might be a good idea to make ANALYZE able hint autovacuum that
some tables need VACUUM (that they exceed limits set for autovacuum).
The 2nd point could be a TODO item, perhaps? Something like:
When ANALYZE runs, make it note removable dead rows and non-removable
dead rows. If removable dead rows exceed some threshold, hint autovacuum
at that table.
Regards,
Dawid
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Zdenek Kotala | 2007-05-07 06:28:40 | Re: Integer datetimes |
| Previous Message | Pavel Stehule | 2007-05-07 05:38:36 | Re: plperl vs. bytea |