该视图是一个虚拟表(也可以视为语句),它基于创建时指定的查询语句的结果。每个访问将导致此查询语句被执行一次。为了避免执行此问题查询每次访问时,此查询结果集可以存储到实体视图(也称为物理视图)中。
物质化观点和普通观点之间的区别在于,实现的观点是该机构的副本。它与表相似,需要占据存储空间。实现的视图查询的执行效率与查询相同。
创建实现的视图时,立即构建即时生成数据。
构建延期在创建时不会生成数据,然后根据需要重新生成数据。
默认值是立即构建的。
刷新(刷新):当基本表发生时,当DML操作发生时,当材料视图用于同步和基础表时。
刷新后有三种指定的刷新方法:快速,完整和力。
快速刷新使用增量刷新,仅在最后一次刷新后刷新修改。
完整的刷新完全刷新了整个实现的视图。
如果选择了力方法,Oracle将确定在刷新时是否可以快速刷新它。如果可以使用,则可以使用它,否则使用完整的方法。
力是默认方法。
有两种刷新模式:按需和提交。
按需指的是需要手动刷新实现的视图(默认值)。
在提交操作发生时会自动刷新。
要求:查询地址ID,地址名称和区域名称,结果如下:
陈述:
执行上面的句子后查询
查询结果如下:
目前,我们将新记录插入地址表(T_Address),
在再次执行上述查询句子后,您会发现新插入的句子未出现在实体视图中。
我们需要通过以下声明(PL/SQL)手动刷新实现的视图:
或通过以下命令手动刷新物质化视图:
执行此命令后,再次检查实现的视图,您可以查询最新数据。
dbms_mview.refresh实际上是一个构建的系统 - 存储过程。我们还将介绍存储过程。
该句子如下:
创建此实体视图后,当T_Address表更改时,MV_ADDRESS2将自动更改。
创建创建后,执行以下句子以查询实现的视图
搜索结果:
执行以下语句生成数据
再次查询,获取结果:
因为在创建创建时指定的“提交”,我们可以在修改数据后立即查看最新数据,因此无需再次执行刷新。
如果创建一个增量物质化视图,则必须首先创建一个实现的视图日志
创建的实体视图日志名称为MLOG $ _表名
创建一个实现的视图
注意:创建一个实现的增量刷新视图,必须:
(1)创建涉及实现视图的实体视图日志。
(2)在查询语句中,所有表的行列必须
当我们将数据插入地址表时,实体视图日志的内容:
Snaptime $ $:用于指示刷新时间。
dmltype $ $:用于表示DML操作类型,我代表插入,d表示删除,U代表更新。
表示旧值,U表示更新操作。
Change_Vector $ $:这意味着修改向量以指示修改哪个字段或字段。
此列是原始类型。实际上,甲骨文采用的方法是用每个位映射列。
插入操作显示为:Fe,删除显示:OO更新操作根据更新字段的位置显示不同的值。
当我们手动刷新实现的视图时,实现的视图日志为空,并更新了实现的视图。