1.物化视图可以分为以下三种类型:包含聚集的物化视图;只包含连接的物化视图;嵌套物化视图。三种物化视图的快速刷新的限制条件有很大区别,而对于其他方面则区别不大。创建物化视图时可以指定多种选项,下面对几种主要的选择进行简单说明:
2.创建方式(Build Methods):包括BUILD IMMEDIATE和BUILD DEFERRED两种。BUILD IMMEDIATE是在创建物化视图的时候就生成数据,而BUILD DEFERRED则在创建时不生成数据,以后根据需要在生成数据。默认为BUILD IMMEDIATE
3.查询重写(Query Rewrite):包括ENABLE QUERY REWRITE和DISABLE QUERY REWRITE两种。分别指出创建的物化视图是否支持查询重写。查询重写是指当对物化视图的基表进行查询时,Oracle会自动判断能否通过查询物化视图来得到结果,如果可以,则避免了聚集或连接操作,而直接从已经计算好的物化视图中读取数据。默认为DISABLE QUERY REWRITE。
4.刷新(Refresh):指当基表发生了DML操作后,物化视图何时采用哪种方式和基表进行同步。刷新的模式有两种:ON DEMAND和ON COMMIT。ON DEMAND指物化视图在用户需要的时候进行刷新,可以手工通过DBMS_MVIEW.REFRESH等方法来进行刷新,也可以通过JOB定时进行刷新。ON COMMIT指出物化视图在对基表的DML操作提交的同时进行刷新。刷新的方法有四种:FAST、COMPLETE、FORCE和NEVER。FAST刷新采用增量刷新,只刷新自上次刷新以后进行的修改。COMPLETE刷新对整个物化视图进行完全的刷新。如果选择FORCE方式,则Oracle在刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式。NEVER指物化视图不进行任何刷新。默认值是FORCE ON DEMAND。
5.物化视图日志:如果需要进行快速刷新,则需要建立物化视图日志。物化视图日志根据不同物化视图的快速刷新的需要,可以建立为ROWID或PRIMARY KEY类型的。还可以选择是否包括SEQUENCE、INCLUDING NEW VALUES以及指定列的列表。
6.物化视图可以进行分区。而且基于分区的物化视图可以支持分区变化跟踪(PCT)。具有这种特性的物化视图,当基表进行了分区维护操作后,仍然可以进行快速刷新操作。 对于聚集物化视图,可以在GROUP BY列表中使用CUBE或ROLLUP,来建立不同等级的聚集物化视图。
--物化视图on commit 在操作表的时候就进行刷新物化视图。
CREATE MATERIALIZED VIEW mv_student_1
REFRESH FORCE
ON commit
ENABLE QUERY REWRITE
AS
select * from student; --改成student@ucv 这样是不行的,不能在dblink上使用commit
commit;
insert into student values(1,'sdfdsdf');
insert into student values(2,'sdfdsdf');
select * from mv_student_1;
快速刷新:
create materialized view log on tt --日志
create materialized view mv_tt --物化视图
refresh fast
as
select id,name from tt;
exec dbms_mview.refresh('mv_tt') --刷新物化视图
select * from mv_tt;
增量刷新:
注意要修改:init.ora
alter system set job_queue_processes=20;
如果这个参数的大小是0 则刷新是不会起到作用的。
create materialized view log on tt
create materialized view mv_tt
REFRESH FAST START WITH SYSDATE
NEXT SYSDATE + 2/(24*60*60) ---2秒刷新一次
as
select id,name from tt;
delete from tt ;
insert into tt values(11,'sdfd');
insert into tt values(12,'sdfd');
insert into tt values(13,'sdfd');
commit;
select * from mv_tt;
SELECT MM.mview_name,MM.last_refresh_dateFROM DBA_MVIEWS MM --查看物化视图的刷新时间。
物化视图是不能进行增量更新远程数据库表的 --我试过不行,不知道是自己方法不对,还是啥问题。
分享到:
相关推荐
### 物化视图在Oracle数据仓库中的应用与优化 #### 一、引言 在当今数据驱动的时代背景下,企业越来越依赖于数据仓库来进行...未来的研究方向将集中在更智能化的物化视图管理策略上,以适应日益复杂多变的企业环境。
"Oracle 物化视图增量刷新的应用研究" Oracle 物化视图是 Oracle 公司提供的一种新技术,可以解决很多普通逻辑视图无法完成的功能。物化视图操作简单,支持增量刷新及全量刷新,可以支持复杂的表连接、聚合函数等...
Oracle物化视图日志是一种强大的数据同步技术,尤其适用于分布式数据库和分布式应用系统之间的数据一致性维护。在当今信息化系统中,随着技术的快速发展,数据的分布性和实时性需求日益增强,数据同步成为了一个关键...
### 实时数据仓库与物化视图协作 #### 一、实时数据仓库概述 实时数据仓库(Real-time Data Warehouse)是指能够即时处理和提供数据访问的企业级数据管理系统。相较于传统的批量处理方式,实时数据仓库利用流式...
【Oracle物化视图实现数据同步复制】 Oracle物化视图是一种高级的数据管理工具,用于在数据库间实现数据的同步复制。物化视图的概念首次出现在Oracle8i中,它是一个实际存储在数据库中的预计算结果集,可以提高查询...
物化视图能够有效地提高空间数据仓库的查询效率,但由于空间操作的复杂性,传统数据仓库中物化视图的选择算法不能很好地应用于空间数据仓库。为了在存储空间约束下选择查询进行物化,并动态调整物化视图集,以适应...
为了进一步提高数据仓库的性能, 通过分析... 然后研究在物化视图上建立索引的空间高效存储方法, 以提高查询速率; 最后利用成本模型对耦合情况进行分析, 验证了耦合方法可以极大提高单一索引查询或者物化视图的性能。
总的来说,"按列存储环境下分布式系统中物化视图布局及其维护方法"是一个深度研究的话题,涵盖了数据存储优化、查询性能提升、分布式协调和数据一致性等多个方面。理解并掌握这些知识点对于设计高效的大数据处理系统...
这篇文档研究的是在分布式数据库或数据仓库环境中,通过混合蛙跳算法及其改进算法来选择物化视图,以便加速查询并降低维护成本。这个问题的解决对于数据密集型应用的性能优化至关重要。通过该研究,我们可以了解在...
物化视图是Oracle数据库中一种强大的特性,它将查询结果存储在物理表中,可以定期或实时地从远程数据源更新。在系统整合中,物化视图可以提高查询性能,尤其是在需要频繁查询跨多个数据库的数据时。物化视图通过预先...
这是 Pequod 的源代码版本,这是一个快速的分布式键值缓存,内置支持物化视图。 Pequod 是一个研究原型,不应在任何生产环境中使用。 有关 Pequod 设计的背景,请参阅出版物: 内容 PQDIR这个目录。 PQDIR/src ...
这涉及到物化视图方案的选择,即确定需要进行物化的数据集合。良好的方案可以极大地提高查询性能,这一过程的关键在于根据用户的查询特征确定需要进行物化的数据集合。 5. XML物化方法的研究: 针对XML物化方法的...
综上所述,空间区域聚集查询方法的研究涉及到了R_tree、物化视图等关键技术的应用与优化。这些技术通过减少计算量、优化数据结构和预计算聚合数据,显著提高了查询的响应性能。在未来,随着新技术的不断发展,空间...
【多级物化视图】多级物化视图增加了方案的灵活性,使得数据可以在多个层次上进行复制和刷新,适用于复杂的数据分发场景,如多层次的医院集团结构。 【数据冲突】在复制过程中,当不同节点同时修改同一数据时,可能...
该系统选择Oracle作为后台数据库,通过数据字典的分析设计、数据库规范化设计、功能模块设计、系统流程设计和实体关系设计,创建了一百多张表,有效地利用了视图和物化视图,以集中特定数据、简化操作并确保数据安全...
针对上述问题在候选视图生成算法和IGA算法的基础上,对算法进行了动态调整,从而得出了新型物化视图动态调整算法CNUMV。经实验证明该算法降低了视图的搜索空间和时间复杂度,更重要的是该算法考虑到了各视图之间相互...