Autovacuum, dead tuples and bloat

From: "Shenavai, Manuel" <manuel(dot)shenavai(at)sap(dot)com>
To: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Autovacuum, dead tuples and bloat
Date: 2024-06-20 16:46:49
Message-ID: AM9PR02MB7410603C5F467DED657D5330E8C82@AM9PR02MB7410.eurprd02.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi everyone,

we can see in our database, that the DB is 200GB of size, with 99% bloat. After vacuum full the DB decreases to 2GB.
DB total size: 200GB
DB bloat: 198 GB
DB non-bloat: 2GB

We further see, that during bulk updates (i.e. a long running transaction), the DB is still growing, i.e. the size of the DB growth by +20GB after the bulk updates.

My assumption is, that after an autovacuum, the 99% bloat should be available for usage again. But the DB size would stay at 200GB. In our case, I would only expect a growth of the DB, if the bulk-updates exceed the current DB size (i.e. 220 GB).

How could I verify my assumption?

I think of two possibilities:

1. My assumption is wrong and for some reason the dead tuples are not cleaned so that the space cannot be reused
2. The bulk-update indeed exceeds the current DB size. (Then the growth is expected).

Can you help me to verify these assumptions? Are there any statistics available that could help me with my verification?

Thanks in advance &
Best regards,
Manuel

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Adrian Klaver 2024-06-20 17:06:16 Re: Autovacuum, dead tuples and bloat
Previous Message Rich Shepard 2024-06-20 15:30:00 Re: Transaction issue