On 6/20/24 09:46, Shenavai, Manuel wrote:
> 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.
How soon after the updates did you measure the above?
>
> 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).
Was the transaction completed(commit/rollback)?
Are there other transactions using the table or tables?
>
> 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?
Use:
https://www.postgresql.org/docs/current/monitoring-stats.html#MONITORING-PG-STAT-ALL-TABLES-VIEW
Select the rows that cover the table or tables involved. Look at the
vacuum/autovacuum/analyze fields.
>
> Thanks in advance &
>
> Best regards,
>
> Manuel
>
--
Adrian Klaver
adrian.klaver@aklaver.com