本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
刷新实体化视图
实体化视图包含查询结果的快照。除非您将 Amazon Redshift 配置为定期更新,否则实体化视图不会定期更新。要手动刷新和更新实体化视图中的数据,您可以随时使用 REFRESH MATERIALIZED VIEW 语句。该命令可识别基表中发生的更改,并将这些更改应用到实体化视图中。
有两种刷新实体化视图的方法:手动刷新和自动刷新(称为自动刷新)。以下示例查询显示了如何手动刷新实体化视图:
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_MV_REFRESH_STATUS 视图。该视图记录用户发起或自动刷新的查询。