Redshift中VACUUM FULL任务能否暂停恢复?终止后能否续跑?
Redshift VACUUM相关问题解答
核心问题回复
- 能否暂停大表VACUUM以执行小表VACUUM?
Redshift不支持暂停VACUUM操作,只能通过终止当前大表的VACUUM任务,终止后即可立即启动小表的日常VACUUM。 - 终止VACUUM会重置进度吗?
是的,终止VACUUM FULL操作后,之前的运行进度会完全重置,不会保留任何中间状态。 - 重新执行能否从上次状态续跑?
不能续跑,重启VACUUM FULL会从头开始扫描并重写整个表数据。
Redshift VACUUM运行机制说明
- VACUUM的核心作用是整理列存储表的存储空间:清理被标记为删除的数据、重新排序数据以优化查询性能,同时回收空闲存储空间。
VACUUM FULL是最耗时的VACUUM类型,它会重写整个表的所有有效数据块,将其组织到连续的存储空间中,超大表执行该操作会占用大量IO、CPU资源,且耗时极长。- Redshift同一时间仅允许运行一个VACUUM任务(无论类型),因为该操作属于资源密集型任务,独占集群资源以保证效率。
- 针对超大表的替代优化建议:
- 如果表是分区表,可按分区逐次执行
VACUUM FULL,拆分工作量,避免长时间占用VACUUM队列。 - 优先执行
VACUUM DELETE ONLY清理已删除的数据,后续再执行VACUUM SORT ONLY完成数据排序,拆分操作步骤。
- 如果表是分区表,可按分区逐次执行
内容的提问来源于stack exchange,提问作者sasawatc
相关产品推荐
相关产品推荐

