Amazon Redshift VACUUM 不成功

Posted

技术标签:

【中文标题】Amazon Redshift VACUUM 不成功【英文标题】:Amazon Redshift VACUUM was not successful 【发布时间】:2017-08-22 23:38:24 【问题描述】:

我的表有 17500000 行,

我删除了 50 万行。删除后,我运行了vacuum命令。

根据SVV_VACUUM_SUMMARY,row_delta是vacuum前后表格总行数之差。

但是当我看到SVV_VACUUM_SUMMARY表时,row_delta是0,不应该是500K吗?

这也是STL_VACUUM 表的输出:

状态行排序

开始 17500000 813055

完成17500000 17500000

这是否意味着 Vacuum 不成功,因为完成的行与启动时相同?

SVV_VACUUM_PROGRESS 的状态也为表的完成。所以想确认一下是否成功。

并检查SVV_TABLE_INFO 我的表和tbl_rows 有17500000。我不知道应该做什么,因为我认为tbl_rows 应该是17000000,因为真空操作成功了。

任何帮助将不胜感激。

【问题讨论】:

您是否尝试设置阈值? VACUUM DELETE ONLY TO 100 PERCENT 你在VACUUM之后跑过ANALYZE吗? @Ravi 我将 table_name 真空吸到 100% @Alex是的,我没有。我应该吗? @ChiragSejpal 尝试这样做,可能是 svv_table_info 依赖于过时的表统计信息。请让我知道这是否有效 【参考方案1】:

您可以使用视图svv_table_info 来确认表是否被正确清空。

如果由于某种原因,运行 VACUUM my_table TO 100 PERCENT 不会导致 svv_table_info 中的 unsorted 值发生变化,则需要 perform a deep copy。

【讨论】:

我确实在运行真空后检查了 svv_table_info,正如我的问题中所发布的那样。但是没有用。但是,将vacuum table_name 运行到100%;再次似乎有工作,它将 unsorted 更改为 0,并且 svv_vacuum_summary 中的 row_delta 现在是 -500K。

以上是关于Amazon Redshift VACUUM 不成功的主要内容,如果未能解决你的问题,请参考以下文章

评估 Redshift 中的 VACUUM 将释放多少空间

Amazon Redshift - 清理和分析详细信息

控制台中的 Redshift Vacuum 进度

AWS Redshift Vacuum 返回错误:断言

使用 Rails Vacuum gem 在 Amazon Product Api 中获取 ItemId

Amazon EMR 与 Amazon Redshift