物化视图有哪些类型?
物化视图创建语句中的SELECT子句表示物化视图要包含的数据。一些限制可以定义的内容以及多个表可以连接在一起。有几个元素,包括视图、内联视图(SELECT语句的FROM子句中的子查询)、子查询和物化视图,它们都可以在SELECT子句中连接或插补。
有各种类型的物化视图如下-
带聚合的物化视图-在数据仓库中,物化视图通常包括聚合。为了能够进行快速更新,SELECT列表必须包括所有GROUPBY列(如果存在),并且COUNT(column)在某些聚合列上应该有一个COUNT(*)和一个。
实体化视图日志应该出现在代表实体化视图的查询中引用的所有表上。真正的聚合函数是SUM、COUNT(x)、COUNT(*)、AVG、VARIANCE、STDDEV、MIN和MAX,要聚合的解释可以是一些SQL值表达式。
仅包含连接的物化视图-一些物化视图仅包含连接而没有聚合,其中生成的物化视图将销售表连接到时间和客户表。制作这种物化视图的好处是可以预先计算昂贵的连接。
在对基表(直接路径或常规插入、更新或删除)执行任何类型的DML之后,仅包括联接的物化视图的快速更新适用。仅包含连接的物化视图可以表示为在提交或按需刷新。如果是ONCOMMIT,则在对物化视图的分析表执行DML的事务的提交时间实现刷新。
如果物化视图仅包含连接,则每个表(以及在FROM列表中多次出现的表的每个示例)的ROWID列都应该出现在物化视图的SELECT列表中。
如果物化视图在FROM子句中有远程表,则FROM子句中的所有表都应该放在那个相似的站点上。此外,不为具有远程表的物化视图提供ONCOMMIT刷新。实体化视图的每个细节表的实体化视图日志应该存在于远程站点上,并且ROWID列应该出现在实体化视图的SELECT列表中。
嵌套物化视图-嵌套物化视图是一个物化视图,其描述位于另一个物化视图上。嵌套的物化视图可以引用数据库中的不同关系,包括引用物化视图。
在数据仓库中,它通常可以在单个连接上创建一些聚合视图(例如,沿多个维度汇总)。它可以逐步支持这些不同的物化聚合视图可能需要很长时间,因为必须多次实现基本连接。