物化视图是一种特殊的物理表,“物化”(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马上更新数据。
    普通视图:可以更新,删除,修改等操作,但是这些操作将直接反应在原表中。

普通视图和物化视图区别相关推荐

  1. 普通视图和物化视图的区别(转)

    物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的. 普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL ...

  2. 普通视图和物化视图的区别

    物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的. 普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL ...

  3. oracle物化视图和表的区别,数据库中普通视图和物化视图有什么区别?

    对于增量刷新选项,如果在子查询中存在分析函数,则物化视图不起作用. Refresh方法- COMPLETE子句 完全刷新重新生成整个视图,如果请求完全刷新,oracle会完成 完全刷新即使增量刷新可用 ...

  4. Oracle物化视图与物化视图日志

    文章目录 物化视图 物化视图与普通视图的区别 创建一个存放person的表 创建一个存放person的address的表 初始化数据 创建物化视图的语句 1.build [immediate|defe ...

  5. 浅谈SQL Server索引视图(物化视图)以及索引视图与查询重写

    目录 (一)前言 (二)正文 1. 物化视图(索引视图)与查询重写的基本概念 2. 创建测试环境 (1)建表 (2)写数据 3. 索引视图创建 (1)创建语法 (2)为索引视图创建索引 4. 查询重写 ...

  6. 数据库视图解析[普通视图、物化视图以及通过修改视图修改数据]

    1. 关系型数据库的视图 1.1. 视图 视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式 ...

  7. Hive视图与物化视图

    文章目录 1. 视图 1.2 案例 1.3 视图的好处 2. Hive3.0新特性:Materialized View 物化视图 2.1 物化视图语法 2.2 基于物化视图的查询重写 1. 视图 Hi ...

  8. mysql实现物化视图详解及视图与物化视图区别

    再一次sql优化中一个select count(*)语句因数据量实在太大,已经无法从简单的索引什么进行优化了,在同事的推荐下考虑到了物化视图 物化视图是相对于视图而言的,但是两者实际上并没有什么关系就 ...

  9. mysql 5.6物化视图_mysql实现物化视图详解及视图与物化视图区别

    再一次sql优化中一个select count(*)语句因数据量实在太大,已经无法从简单的索引什么进行优化了,在同事的推荐下考虑到了物化视图 物化视图是相对于视图而言的,但是两者实际上并没有什么关系就 ...

最新文章

  1. 7 centos 源码安装samba_CentOS搭建WonderTrader开发环境及v0.5.4版本发布
  2. javascript字符串截取
  3. SAP中手工配置Delivery打印message
  4. 获取Class对象的三种方式
  5. 架构与设计 之一 C 嵌入式设计模式(Design Patterns for Embedded Systems in C)的学习记录
  6. 求周期方波信号的傅里叶级数_1-1 求周期方波(见图1-4)的傅里叶级数(复指数函数形 ….doc...
  7. 诺基亚n73支持java_JAVA性能 vs 诺基亚N71、E61_诺基亚 N73_手机其它OS-中关村在线
  8. 坚实原则:单一责任原则
  9. 初识Notification
  10. 【 C# 】ListView控件的基本属性和常用方法详解
  11. 联想微型计算机驱动,联想XM2061驱动
  12. linux用户态和内核态堆栈,Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
  13. 新手教学,如何快速地画一个PCB板子
  14. k8s:worke节点启动后,node处于NotReady状态
  15. png格式怎么转换?如何修改图片的格式?
  16. java各位数字补位,左边补0
  17. 挺全的HTML、CSS整理笔记
  18. 新华三防火墙简单配置安全域
  19. 吴恩达卷积神经网络 笔记,吴恩达 深度神经网络
  20. 【新观点】孙悟空其实是太上老君炼的丹药变成的

热门文章

  1. C语言三路基数快排multikey quick sort算法(附完整源码)
  2. C语言堆排序Heap Sort算法(附完整源码)
  3. C语言二进制转换为八进制(附完整源码)
  4. C++为什么摒弃auto_ptr
  5. QT的QMutableMapIterator类的使用
  6. QML基础类型之color
  7. C++const修饰成员函数
  8. python四舍五入round_四舍五入就用round( )?Python四舍五入的正确打开方式!
  9. 关于Eclipse创建Android项目时,会多出一个appcompat_v7的问题
  10. 4高并发服务器:UDP局域网服务器(组播)