Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

管理未排序区域的大小

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

  • 定期运行 vacuum 操作。

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

  • 首先运行最大加载。

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

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

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

  • 截断或删除测试表。

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

  • 执行深层复制。

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