

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 启用、禁用和监控自动表优化
<a name="c_ato-enabling-disabling-monitoring"></a>

预设情况下，未显式定义排序键或分配键时创建的表将设置为 `AUTO`。在创建表时，您还可以手动显式设置排序键或分配键。如果您设置了排序键或分配键，则不会自动管理该表。

## 启用自动表优化
<a name="ato-enabling"></a>

要使现有表能够自动优化，请使用 ALTER 语句选项将表更改为 `AUTO`。您可以选择为排序键定义自动化，但不能为分配键定义自动化（反之亦然）。如果运行 ALTER 语句将表转换为自动表，则会保留现有的排序键和分配样式。

```
ALTER TABLE table_name ALTER SORTKEY AUTO;
```

```
ALTER TABLE table_name ALTER DISTSTYLE AUTO;
```

有关更多信息，请参阅 [ALTER TABLE](r_ALTER_TABLE.md)。

最初，表没有分配键或排序键。分配样式设置为 `EVEN` 或 `ALL`，具体取决于表格大小。随着表大小的增大，Amazon Redshift 会应用最佳分配键和排序键。在运行最少数量的查询之后，将在数小时内应用优化。确定排序键优化时，Amazon Redshift 会尝试在表扫描期间优化从磁盘读取的数据块。在确定分配样式优化时，Amazon Redshift 会尝试优化在集群节点之间传输的字节数。

## 从表中删除自动表优化
<a name="ato-disabling"></a>

您可以从自动优化中删除表。从自动化中删除表包括选择排序键或分配样式。要更改分配样式，请指定特定的分配样式。

```
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;
```

## 监控自动表优化
<a name="ato-monitoring-actions"></a>

系统视图 `SVV_ALTER_TABLE_RECOMMENDATIONS` 记录了当前针对表的 Amazon Redshift Advisor 建议。此视图显示针对所有表的建议，包括为自动优化定义的建议和非为自动优化定义的建议。

要查看某张表是否定义为自动优化，请查询系统视图 `SVV_TABLE_INFO`。条目仅针对当前会话数据库中可见的表显示。每天两次将建议插入视图中，从创建集群后的数小时内开始。建议可用后，将在一小时内开始。在（Amazon Redshift 或您）应用建议后，该建议将不再显示在视图中。

系统视图 `SVL_AUTO_WORKER_ACTION` 显示了 Amazon Redshift 执行的所有操作的审计日志，以及表的先前状态。

系统视图 `SVV_TABLE_INFO` 列出了系统中的所有表，以及一个列，用于指示表的排序键和分配样式是否设置为 `AUTO`。

有关这些系统视图的更多信息，请参阅[系统监控（仅已预置）](c_intro_system_views.md)。