在Postgres中清理Spring Batch表的策略

时间:2019-01-22 16:23:13

标签: postgresql spring-batch

Spring Batch框架定义了several BATCH_ prefixed tables

它们将索引定义留给最终用户,并且窗帘查询无法避免通过设计进行全面扫描。因此,性能需要精简表。

我们不需要将BATCH_*的历史数据保存超过1周。

我无法提出不需要停止所有批处理过程的Postgres拒绝策略。

如果容易停止批处理作业,那么我可以truncatedrop BATCH_*表。这需要数据库维护和批处理作业维护之间的协调。

我考虑基于delete的{​​{1}}数据以及相应的联接。应特别注意Postgres通过BATCH_JOB_EXECUTION.CREATE_TIME < current_date - 7回收用过的内存。据我了解,没有vacuum,但vacuum full会锁定full表,因此无法回收表存储。这会阻止批处理过程...

更新,我当前的清理计划为(性能统计信息以单位+秒为单位):

BATCH_

1 个答案:

答案 0 :(得分:1)

可能重复....再次发布相同的答案,希望对您有帮助

我已经为此苦苦挣扎了一段时间,但是对此没有标准的实现方法。

然后我想出了自己的存储过程,

我创建了自己的变量-用于清除最近6个月的数据AGO_SIX_MONTH_DATE

您可以使用自己的值。

The solution is at below link -

Spring Batch元数据表清除