普通视图和物化视图区别

简介:

物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。 
1、物化视图的类型:ON DEMAND、ON COMMIT
二 者的区别在于刷新方法的不同,ON DEMAND顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。
2、ON DEMAND物化视图
物化视图的创建本身是很复杂和需要优化参数设置的,特别是针对大型生产数据库系统而言。但Oracle允许以这种最简单的,类似于普通视图的方式来做,所以不可避免的会涉及到默认值问题。也就是说Oracle给物化视图的重要定义参数的默认值处理是我们需要特别注意的。
物化视图的特点:
(1) 物化视图在某种意义上说就是一个物理表(而且不仅仅是一个物理表),这通过其可以被user_tables查询出来,而得到佐证;(2) 物化视图也是一种段(segment),所以其有自己的物理存储属性;(3) 物化视图会占用数据库磁盘空间,这点从user_segment的查询结果,可以得到佐证;
创建语句:create materialized view mv_name as select * from table_name
默认情况下,如果没指定刷新方法和刷新模式,则Oracle默认为FORCE和DEMAND。
物化视图的数据怎么随着基表而更新?
Oracle 提供了两种方式,手工刷新和自动刷新,默认为手工刷新。也就是说,通过我们手工的执行某个Oracle提供的系统级存储过程或包,来保证物化视图与基表数 据一致性。这是最基本的刷新办法了。自动刷新,其实也就是Oracle会建立一个job,通过这个job来调用相同的存储过程或包,加以实现。
ON DEMAND物化视图的特性及其和ON COMMIT物化视图的区别,即前者不刷新(手工或自动)就不更新物化视图,而后者不刷新也会更新物化视图,——只要基表发生了COMMIT。
3、ON COMMIT物化视图
ON COMMIT物化视图的创建,和上面创建ON DEMAND的物化视图区别不大。因为ON DEMAND是默认的,所以ON COMMIT物化视图,需要再增加个参数即可。
需要注意的是,无法在定义时仅指定ON COMMIT,还得附带个参数才行。
创建ON COMMIT物化视图:create materialized view mv_name refresh force on commit as select * from table_name

 

 

 

 

 

一:物化视图:在查询时直接读出物化视图中的数据。
    普通视图:在查询时需要在查询中嵌套个子查询然后去访问原表。

二:物化视图:不可以更新,删除,修改等操作,只能够查询。然后他分为ON DEMAND物化视图和ON DEMAND物化视图
    ON DEMAND物化视图:需要手动更新数据,这样才能保证它和原表的数据一致。
    ON DEMAND物化视图:一旦原表中有数据commit马上更新数据。
    普通视图:可以更新,删除,修改等操作,但是这些操作将直接反应在原表中。



本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/archive/2011/12/04/2275475.html,如需转载请自行联系原作者

目录
相关文章
|
2天前
|
存储 数据库 索引
事务、视图和索引
事务、视图和索引
12 0
|
2天前
|
存储 数据库 Python
视图函数中创建模型, 并设置外键
视图函数中创建模型, 并设置外键。
7 1
|
2天前
|
SQL 安全 关系型数据库
MySQL视图 视图的作用、视图常用语法
MySQL视图 视图的作用、视图常用语法
31 0
|
7月前
|
存储 关系型数据库 MySQL
视图与索引的详细用法
视图与索引的详细用法
44 0
|
12月前
|
SQL 数据库 索引
数据库sql语句(视图的创建)
数据库sql语句(视图的创建)
213 0
|
SQL 数据管理 关系型数据库
数据库原理及应用——数据更新和视图创建
(1)所使用的学生管理库中的三张表: (2)数据更新具体完成以下例题: (3)视图操作具体完成以下例题:
525 0
数据库原理及应用——数据更新和视图创建
|
SQL 安全 数据库
关于数据库的视图,你了解多少
视图(View)并不在数据库中实际存在,而是一种虚拟表,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。即视图就是执行查询语句后所返回的结果集,所以在创建视图的时候,主要就是创建这条SQL查询语句。
168 0
关于数据库的视图,你了解多少
|
SQL Go 索引
SQL Server索引视图以(物化视图)及索引视图与查询重写
原文:SQL Server索引视图以(物化视图)及索引视图与查询重写   本文出处:http://www.cnblogs.com/wy123/p/6041122.html      经常听Oracle的同学说起来物化视图,物化视图的作用之一就是可以实现查询重写,听起来有一种高大上的感觉,  SQL Server也有类似于Oracle物化视图的功能,只不过叫做索引视图。
1162 0
|
XML 数据格式
数据视图
原文:数据视图 1、数据视图。 使用数据视图,可添加导航逻辑并实现过滤、排序和分组。 2、View对象。 当将结合(或DataTable)绑定到ItemsControl控件时,会不加通告地在后台创建数据视图---位于数据源和绑定的控件之间。
942 0