启用、禁用和监控自动表优化
预设情况下,未显式定义排序键或分配键时创建的表将设置为 AUTO
。在创建表时,您还可以手动显式设置排序键或分配键。如果您设置了排序键或分配键,则不会自动管理该表。
启用自动表优化
要使现有表能够自动优化,请使用 ALTER 语句选项将表更改为 AUTO
。您可以选择为排序键定义自动化,但不能为分配键定义自动化(反之亦然)。如果运行 ALTER 语句将表转换为自动表,则会保留现有的排序键和分配样式。
ALTER TABLE table_name
ALTER SORTKEY AUTO;
ALTER TABLE table_name
ALTER DISTSTYLE AUTO;
有关更多信息,请参阅 ALTER TABLE。
最初,表没有分配键或排序键。分配样式设置为 EVEN
或 ALL
,具体取决于表格大小。随着表大小的增大,Amazon Redshift 会应用最佳分配键和排序键。在运行最少数量的查询之后,将在数小时内应用优化。确定排序键优化时,Amazon Redshift 会尝试在表扫描期间优化从磁盘读取的数据块。在确定分配样式优化时,Amazon Redshift 会尝试优化在集群节点之间传输的字节数。
从表中删除自动表优化
您可以从自动优化中删除表。从自动化中删除表包括选择排序键或分配样式。要更改分配样式,请指定特定的分配样式。
ALTER TABLE table_name
ALTER DISTSTYLE EVEN;
ALTER TABLE table_name
ALTER DISTSTYLE ALL;
ALTER TABLE table_name
ALTER DISTSTYLE KEY DISTKEY c1
;
要更改排序键,可以定义排序键或选择无。
ALTER TABLE table_name
ALTER SORTKEY(c1, c2
);
ALTER TABLE table_name
ALTER SORTKEY NONE;
监控自动表优化
系统视图 SVV_ALTER_TABLE_RECOMMENDATIONS
记录了当前针对表的 Amazon Redshift Advisor 建议。此视图显示针对所有表的建议,包括为自动优化定义的建议和非为自动优化定义的建议。
要查看某张表是否定义为自动优化,请查询系统视图 SVV_TABLE_INFO
。条目仅针对当前会话数据库中可见的表显示。每天两次将建议插入视图中,从创建集群后的数小时内开始。建议可用后,将在一小时内开始。在(Amazon Redshift 或您)应用建议后,该建议将不再显示在视图中。
系统视图 SVL_AUTO_WORKER_ACTION
显示了 Amazon Redshift 执行的所有操作的审计日志,以及表的先前状态。
系统视图 SVV_TABLE_INFO
列出了系统中的所有表,以及一个列,用于指示表的排序键和分配样式是否设置为 AUTO
。
有关这些系统视图的更多信息,请参阅系统监控(仅已预置)。