物化视图表示在数据库的其他地方另外存放了一份as 后边的内容,

如果只是普通view, 那么 rowid 是相同的, view相当于指针, 它指向基表.

而物化视图的rowid 与基表是不一样的, 所以它肯定是在数据库中又保存了一份相应内容.

那么, 当然你改变基表的数据, 物化视图里的值是不变的.

那么物化视图要通过刷新和基表进行同步(完全刷新, fast刷新)

刷新

c 表示 complete

另外, 刷新后的值虽然一样, 但是 rowid 同样还是不一样, 也就是说,它同样还独立的存储在数据库的另一个部分。同时, 所有的rowid都发生了变化, 所以, 就是将物化视图所有的行都删除, 然后再copy基表的数据, 所以 complete 方式要改变物化视图里所有的行, 尽管你只改变了基表中的一行.

这个 LOG 是用来记录基表发生变化的.

这里的 fast 就是说, 创建的物化视图是 fast 方式. 注意, 这里的rowid, 基表没有更新的行, 对应的物化视图的rowid是不变的.

另外, 物化视图同步后, 物化视图的LOG就会清空.

物化视图的用处: (提高速度)

OLAP: 比较好用, 可以用来创建 summary 表

用在数据复制, 两个数据库之间, 先通过 dblink 连接, 然后利用 materialized view 的刷新功能来实现数据库copy. 比如基表在数据库1中, materialized view 在数据库2中. 直接复制成了 summary 数据.

比如 level 0 是基表, 也就是说 materialized view 上还可以建立物化视图.

对应用程序来说是查询基表, 但其实后台是查询的 materialized view, 但是, 前台并不知道.

执行这个 select owner, count(*) from my_all_objects group by owner, 这时, 这个语句执行全表扫描的对象就变了, 变成了物化视图.

Tuning 16 Using Materialized view的更多相关文章

  1. PostgreSQL rule view materialized view examples

    warehouse_db=# create table tab_view(emp_id int not null,emp_name varchar(10),emp_city varchar(10)); ...

  2. [terry笔记]物化视图 materialized view基础学习

    一.物化视图定义摘录:     物化视图是包括一个查询结果的数据库对像(由系统实现定期刷新数据),物化视图不是在使用时才读取,而是预先计算并保存表连接或聚集等耗时较多的操作结果,这样在查询时大大提高了 ...

  3. MATERIALIZED VIEW

    Oracle的实体化视图提供了强大的功能,可以用在不同的环境中,实体化视图和表一样可以直接进行查询.实体化视图可以基于分区表,实体化视图本身也可以分区. 主要用于预先计算并保存表连接或聚集等耗时较多的 ...

  4. Advanced Replication同步复制实验(基于Trigger&基于Materialized View)

    1. 高级复制和流复制介绍 1.1 高级复制(Advanced Replication) 高级复制也称为对称复制,分为多主体站点复制(Multiple Master Rplication).物化视图站 ...

  5. Materialized View in Oracle - Concepts and Architecture

    List all of MV inoracle: select owner, query, query_len from dba_mviews See content of aMV: select * ...

  6. 物化视图(materialized view) 实现数据迁移、数据定时同步

    近日公司有一个9i 的Oracle数据库,运行效率低下.想要将其升级到11G. 但是升级之前 要将数据进行同步,好在表不是很多.只有三张表.业务压力也不大,就想到了使用物 化视图的方式将数据同步过来. ...

  7. Materialized View模式

    Materialized-View模式是在要求数据格式不利于查询操作的情况下,根据多个数据仓库的数据生成预生成的视图的一种模式.这种模式可以帮助支持高效的查询和数据提取,提高应用程序的性能. 问题 在 ...

  8. ora-904 rowid create materialized view

    create materialized view t_v asselect t1.*,1 as marker,rowid from t1 t1union allselect t2.*,2 as mar ...

  9. ORA-12052: cannot fast refresh materialized view

    SQL> execute dbms_mview.refresh ('TX_FAIL_LOG_DAY_MV', 'f'); BEGIN DBMS_MVIEW.REFRESH ('TX_FAIL_L ...

随机推荐

  1. 【转】编译安装PHP并配置PHP-FPM

    1.前言上一篇讲述了如何编译安装MySQL,虽然可以通过yum install 或者rpm来安装,但是yum install和rpm安装有一个特点,就是有些参数是别人根据大众需求定制的,如果需要进行自 ...

  2. JBPM5流程设计器jbpm-designer-2.4.0.Final-tomcat.war的部署没法访问的问题

    转自:http://blog.csdn.net/steveguoshao/article/details/8840607 在http://sourceforge.net/projects/jbpm/f ...

  3. 用filter:grayscale将图片过滤成灰色

    设置成百分之百直接过滤成灰色: img{filter:gray; filter:grayscale(100%); -0-filter:grayscale(100%); -moz-filter:gray ...

  4. webDriver API——第7部分Desired Capabilities

    The Desired Capabilities implementation. class selenium.webdriver.common.desired_capabilities.Desire ...

  5. Unity3D系列教程--使用免费工具在Unity3D中开发2D游戏 第一节

    声明:   本博客文章翻译类别的均为个人翻译,版权全部.出处: http://blog.csdn.net/ml3947,个人博客:http://www.wjfxgame.com. 译者说明:这是一个系 ...

  6. json servlet通信 显示数据

    servlet //输出JSON格式的省份信息 @WebServlet("/ServletDemo1") public class ServletDemo1 extends Htt ...

  7. 关于spring中<context:component-scan base-package="" />写法

    1.通配符形式<context:component-scan base-package="com.*" /> 2.全路径 <context:component-s ...

  8. ajax实现json循环输出结果

    $.post("bankInfo.php",{key:jee_server,uid:jee_uid},function(data) { var strs=JSON.stringif ...

  9. PHP:计算文件或数组中单词出现频率

    一:如果是小文件,可以一次性读入到数组中,使用方便的数组计数函数进行词频统计(假设文件中内容都是空格隔开的单词): <?php $str = file_get_contents("/p ...

  10. 点滴积累【C#】---操作文件

    操作文件 写入文件效果: 写入文件代码: private void 保存ToolStripMenuItem_Click(object sender, EventArgs e) { try { File ...