Spring Batch框架定义了several BATCH_
prefixed tables。
它们将索引定义留给最终用户,并且窗帘查询无法避免通过设计进行全面扫描。因此,性能需要精简表。
我们不需要将BATCH_*
的历史数据保存超过1周。
我无法提出不需要停止所有批处理过程的Postgres拒绝策略。
如果容易停止批处理作业,那么我可以truncate
或drop
BATCH_*
表。这需要数据库维护和批处理作业维护之间的协调。
我考虑基于delete
的{{1}}数据以及相应的联接。应特别注意Postgres通过BATCH_JOB_EXECUTION.CREATE_TIME < current_date - 7
回收用过的内存。据我了解,没有vacuum
,但vacuum full
会锁定full
表,因此无法回收表存储。这会阻止批处理过程...
更新,我当前的清理计划为(性能统计信息以单位+秒为单位):
BATCH_
答案 0 :(得分:1)
可能重复....再次发布相同的答案,希望对您有帮助
我已经为此苦苦挣扎了一段时间,但是对此没有标准的实现方法。
然后我想出了自己的存储过程,
我创建了自己的变量-用于清除最近6个月的数据AGO_SIX_MONTH_DATE
您可以使用自己的值。
The solution is at below link -
Spring Batch元数据表清除