0

在我们的一张大表(~100Gb)上触发 autovacuum 时,我们遇到了一些问题。

我们的 ETL 作业只命中了该表的最后三个分区,但据我了解,当在一个分区上触发 autovacuum 时,整个表都会被清空,这会导致 ETL 作业一直等到它完成。

到目前为止,我已经尝试将 autovacuum_vacuum_scale_factor 设置为更高和更低的值,从而为我们的工作产生大致相同的执行时间。

由于在此表上执行了相当重要的 INSERT/UPDATE 次数,我想在三个 last 分区上设置一个较低的 autovacuum_vacuum_scale_factor 值,但要防止对旧分区进行清理。

我们已经在使用每天晚上运行的真空脚本,所以我正在考虑在旧分区上将 autovacuum_enabled 设置为关闭,并让脚本处理这些表上的真空,但我不确定这是否是处理这个问题的正确方法.

我偶然发现的另一个参数是vacuum_freeze_min_age 和autovacuum_freeze_max_age,但我不确定我是否了解如何使用它们。

4

0 回答 0