TOAST Table / Dead Tuples / Free Pages

Shenavai, Manuel <manuel.shenavai@sap.com>

From: "Shenavai, Manuel" <manuel.shenavai@sap.com>
To: pgsql-general <pgsql-general@postgresql.org>
Date: 2024-06-13T07:55:02Z
Lists: pgsql-general
Hi everyone,

I created a simple scenario to understand the handling of TOASTs<https://www.postgresql.org/docs/current/storage-toast.html>: There is an empty database with a single table and record. The single record gets updated multiple times with 10MB (bytea column). I can see that the table/toasttable size is growing (500MB).

Now I tried to find a way to get the DB size down again (it should be around 10MB instead of 500MB). I don’t want to use VACUUM FULL due to the exclusive lock.

Is there any way to remove the dead tuples and free the pages?

Thanks in advance &
Best regards,
Manuel