

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 刷新实体化视图
<a name="refreshing-materialized-views"></a>

实体化视图包含查询结果的快照。除非您将 Amazon Redshift 配置为定期更新，否则实体化视图不会定期更新。要手动刷新和更新实体化视图中的数据，您可以随时使用 `REFRESH MATERIALIZED VIEW` 语句。该命令可识别基表中发生的更改，并将这些更改应用到实体化视图中。

有两种刷新实体化视图的方法：手动刷新和自动刷新（称为[自动刷新](https://docs.aws.amazon.com/redshift/latest/dg/materialized-view-refresh.html#materialized-view-auto-refresh)）。以下示例查询显示了如何手动刷新实体化视图：

```
REFRESH MATERIALIZED VIEW mv_total_orders;
```

要自动刷新实体化视图，请将 `AUTO REFRESH YES` 子句添加到 `CREATE MATERIALIZED VIEW` 语句，如以下示例所示：

```
CREATE MATERIALIZED VIEW mv_total_orders
AUTO REFRESH YES -- Add this clause to auto refresh the MV 
AS
 SELECT c.cust_id,
        c.first_name,
        sum(o.amount) as total_amount
 FROM orders o
 JOIN customer c
    ON c.cust_id = o.customer_id
 GROUP BY c.cust_id,
          c.first_name;
```

Amazon Redshift 会在基表更改后尽快自动刷新实体化视图。为了在处理刷新时最大限度地减少集群中活动工作负载的影响，Amazon Redshift 会考虑以下因素：
+ 当前系统负载
+ 刷新所需的资源
+ 可用的集群资源
+ 实体化视图的使用频率

Amazon Redshift 会优先处理您的工作负载，而不是自动刷新，并可能会停止自动刷新以保持用户工作负载的性能。请记住，这种方法可能会延迟实体化视图的刷新。对于刷新状态，您可以查看 [SVL\$1MV\$1REFRESH\$1STATUS](https://docs.aws.amazon.com/redshift/latest/dg/r_SVL_MV_REFRESH_STATUS.html) 视图。该视图记录用户发起或自动刷新的查询。