管理未排序区域的大小 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

管理未排序区域的大小

在将大量新数据加载到已包含数据的表中时,或在例行维护操作不包含对表进行的 vacuum 操作时,未排序区域将增大。要避免长时间运行的 vacuum 操作,请使用以下做法:

  • 定期运行 vacuum 操作。

    如果您以较小增量加载您的表(例如,表示表中行总数的一小部分的日常更新),定期运行 VACUUM 将帮助确保各个 vacuum 操作快速执行。

  • 首先运行最大加载。

    如果您需要使用多个 COPY 操作加载新表,请首先运行最大加载。当您运行到新的或截断的表中的初始加载时,所有数据将直接加载到已排序区域,因此无需执行 vacuum 操作。

  • 截断表而不是删除所有行。

    从表中删除行不会回收行占用的空间,除非您执行 vacuum 操作;不过,截断表将清空表并回收磁盘空间,因此无需执行 vacuum 操作。或者,请删除表并重新创建它。

  • 截断或删除测试表。

    如果您正在将少量行加载到表中以进行测试,请在完成此操作后不要删除这些行。相反,作为后续生产加载操作的一部分,请截断表并重新加载这些行。

  • 执行深层复制。

    如果使用复合排序键的表具有大型未排序区域,则深层复制要比 vacuum 快得多。深层复制将使用批量插入来重新创建并重新填充表,这将自动对表进行重新排序。如果表拥有大型未排序区域,深层复制将比真空化快得多。这样做的代价是,您不能在深层复制操作过程中进行并行更新,但可以在真空化时这样做。有关更多信息,请参阅设计查询的 Amazon Redshift 最佳实践