【问题标题】:Vaccuming Redshift interleaved sort keys清理 Redshift 交错排序键
【发布时间】:2016-06-24 09:02:02
【问题描述】:
我有几个表,我添加了交错排序键,并使用复制命令将大量数据批量加载到其中。文档说明我们需要将 Reindex 选项与 Vacuum 一起用于交错排序键。问题是对于我的大小的桌子来说,这将永远需要。我知道仅使用“仅排序”选项的其他排序键可以正常工作。文档中需要更清楚的是,使用仅排序选项进行清理是否可以在具有交错排序键的表上正常工作。有人可以澄清这是否是一个可行的解决方案。
【问题讨论】:
标签:
sql
amazon-redshift
vacuum
【解决方案1】:
您的问题的答案将取决于您如何使用该表,因为不同类型的使用模式会在您的交错排序键上产生不同的碎片/稀缺问题。例如,如果您通常删除表中的所有行并重新插入它们,那么您的需求将与仅添加新行且始终按排序键顺序的人大不相同。
您能否提供有关您的使用模式的更多信息?
【解决方案2】:
使用交错排序键,您需要执行VACUUM REINDEX,这将比正常的VACUUM 花费更长的时间。我认为VACUUM SORT ONLY 在这种情况下实际上不会起作用。
来自documentation:
分析交错排序键列中值的分布,然后执行完整的 VACUUM 操作。 VACUUM REINDEX 比 VACUUM FULL 花费的时间要长得多,因为它会额外通过来分析交错的排序键。交错表的排序和合并操作可能需要更长的时间,因为交错排序可能需要重新排列比复合排序更多的行。
如果 VACUUM REINDEX 操作在完成之前终止,则下一个 VACUUM 会在执行完全真空操作之前恢复重新索引操作。
TO 阈值 PERCENT 不支持 VACUUM REINDEX。