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 不成功的主要内容,如果未能解决你的问题,请参考以下文章