物化视图有哪些类型?

物化视图创建语句中的 SELECT 子句表示物化视图要包含的数据。一些限制可以定义的内容以及多个表可以连接在一起。有几个元素,包括视图、内联视图(SELECT 语句的 FROM 子句中的子查询)、子查询和物化视图,它们都可以在 SELECT 子句中连接或插补。

有各种类型的物化视图如下 -

带聚合的物化视图- 在数据仓库中,物化视图通常包括聚合。为了能够进行快速更新,SELECT 列表必须包括所有 GROUP BY 列(如果存在),并且COUNT(column)在某些聚合列上应该有一个 COUNT(*) 和一个。

实体化视图日志应该出现在代表实体化视图的查询中引用的所有表上。真正的聚合函数是 SUM、COUNT(x)、 COUNT(*)、 AVG、 VARIANCE、 STDDEV、 MIN 和 MAX,要聚合的解释可以是一些 SQL 值表达式。

仅包含连接的物化视图- 一些物化视图仅包含连接而没有聚合,其中生成的物化视图将销售表连接到时间和客户表。制作这种物化视图的好处是可以预先计算昂贵的连接。

在对基表(直接路径或常规插入、更新或删除)执行任何类型的 DML 之后,仅包括联接的物化视图的快速更新适用。仅包含连接的物化视图可以表示为在提交或按需刷新。如果是 ON COMMIT,则在对物化视图的分析表执行 DML 的事务的提交时间实现刷新。

如果物化视图仅包含连接,则每个表(以及在 FROM 列表中多次出现的表的每个示例)的 ROWID 列都应该出现在物化视图的 SELECT 列表中。

如果物化视图在 FROM 子句中有远程表,则 FROM 子句中的所有表都应该放在那个相似的站点上。此外,不为具有远程表的物化视图提供 ON COMMIT 刷新。实体化视图的每个细节表的实体化视图日志应该存在于远程站点上,并且 ROWID 列应该出现在实体化视图的 SELECT 列表中。

嵌套物化视图- 嵌套物化视图是一个物化视图,其描述位于另一个物化视图上。嵌套的物化视图可以引用数据库中的不同关系,包括引用物化视图。

在数据仓库中,它通常可以在单个连接上创建一些聚合视图(例如,沿多个维度汇总)。它可以逐步支持这些不同的物化聚合视图可能需要很长时间,因为必须多次实现基本连接。