Re: Add MAIN_RELATION_CLEANUP and SECONDARY_RELATION_CLEANUP options to VACUUM
Nathan Bossart <bossartn@amazon.com>
From: "Bossart, Nathan" <bossartn@amazon.com>
To: Justin Pryzby <pryzby@telsasoft.com>
Cc: Vik Fearing <vik.fearing@2ndquadrant.com>, "pgsql-hackers@postgresql.org" <pgsql-hackers@postgresql.org>, Michael Paquier <michael@paquier.xyz>, "k.jamison@fujitsu.com" <k.jamison@fujitsu.com>
Date: 2021-01-27T23:16:26Z
Lists: pgsql-hackers
Attachments
- v6-0001-Add-TOAST_TABLE_CLEANUP-option-to-VACUUM.patch (application/octet-stream) patch v6-0001
On 1/27/21, 11:07 AM, "Justin Pryzby" <pryzby@telsasoft.com> wrote: > This just came up for me: > > I have a daily maintenance script which pro-actively vacuums tables: freezing > historic partitions, vacuuming current tables if the table's relfrozenxid is > old, and to encourage indexonly scan. > > I'm checking the greatest(age(toast,main)) and vacuum the table (and implicitly > its toast) whenever either is getting old. > > But it'd be more ideal if I could independently vacuum the main table if it's > old, but not the toast table. Thanks for chiming in. It looks like we were leaning towards only adding the TOAST_TABLE_CLEANUP option, which is already implemented internally with VACOPT_SKIPTOAST. It's already possible to vacuum a TOAST table directly, so we can probably do without the MAIN_RELATION_CLEANUP option. I've attached a new patch that only adds TOAST_TABLE_CLEANUP. Nathan
Commits
-
Add option PROCESS_TOAST to VACUUM
- 7cb3048f38e2 14.0 landed