Redshift 真空排序默认值

Posted

技术标签:

【中文标题】Redshift 真空排序默认值【英文标题】:Redshift vacuum sort default 【发布时间】:2018-12-22 00:49:42 【问题描述】:

“默认情况下,VACUUM 会跳过任何表中超过 95% 的行已排序的表的排序阶段” 默认是 95 而不是 100 有什么原因吗?

100% 到 95% 的排序表的性能提升可以忽略不计吗?

【问题讨论】:

当我知道我没有实时限制时,我总是抽真空到 100%。性能差异取决于您的用例。为什么不运行一些基准来发现对您的情况的影响? @JonScott 谢谢。是的,我很好奇性能优势,并会尝试一些测试 【参考方案1】:

VACUUM 是一个非常密集的操作。拥有 95% 与 100% 排序表的性能优势是最小的。因此,在VACUUM操作中节省了大量的精力。

VACUUM documentation 说:

默认情况下,对于超过 95% 的表行已排序的任何表,VACUUM 都会跳过排序阶段。跳过排序阶段可以显着提高 VACUUM 性能。要更改单个表的默认排序或删除阈值,请在运行 VACUUM 时包含表名称和 TO 阈值 PERCENT 参数。

因此,如果需要,您始终可以强制进行 100% 排序。

【讨论】:

以上是关于Redshift 真空排序默认值的主要内容,如果未能解决你的问题,请参考以下文章

如果未提供列列表,Redshift COPY 命令将忽略表默认值

amazon redshift 中存储的特定行的默认值在哪里?

避免在 Redshift 上仅向日期时间字段提供时间时使用默认日期值

Amazon Redshift 按特定值排序

如何在 Redshift ORDER BY 子句中首先按特定值排序?

如何根据 Where 条件获取 Redshift 中的上述值?