查询实体化视图 - AWS 规范性指导

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

查询实体化视图

当您查询实体化视图时,您可以直接访问实体化视图中预先计算的数据。您可以通过引用实体化视图名称作为数据来源,在任何 SQL 查询中使用实体化视图,就像表或标准视图一样。

例如,请考虑本指南创建实体化视图部分中的 mv_total_orders 实体化视图示例插图。如果您想构建 mv_total_orders 查询(返回订单总额超过 500 美元的客户列表),则可以运行以下标准查询:

statement. 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 HAVING sum(o.amount) > 500;

但前面的查询并未针对速度进行优化。我们建议您改为运行以下查询:

SELECT cust_id, first_name, total_amount FROM mv_total_orders WHERE total_amount > 500;

推荐的查询运行速度要快得多,因为查询结果是预先计算的,并且不需要访问基础表(客户和订单)。Amazon Redshift 可以直接从 mv_total_orders 返回结果。

重要提示

当查询访问实体化视图时,查询只查看最近刷新时存储在实体化视图中的数据。因此,查询可能看不到实体化视图相应基表中的所有最新更改。