物化视图表示在数据库的其他地方另外存放了一份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. 【百度地图JavaScript API】手机端浏览器定位的实现

    [百度地图JavaScript API]手机端浏览器定位的实现 https://blog.csdn.net/xiao190128/article/details/72579476

  2. 用editplus编写python

    语法高亮和自己主动补全: http://www.editplus.com/files/pythonfiles.zip 选择菜单条的-->工具-->配置用户工具-->设置&语法 ...

  3. SonarQube install on Kubernetes

    Sonarqube搭建代码 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: postgres labels: app: ...

  4. php抽象与接口的区别[转载]

    来自:http://www.cnblogs.com/k5054/archive/2012/12/26/2834205.html 对于面向对象开发,抽象类与接口这两个东西是比较难理解的! 今天看了一整天 ...

  5. ppm图像格式

    http://blog.csdn.net/r91987/article/details/5435328 PPM文件格式分三种: 1. PPM灰度文件     文件头由3行文本组成,可由fgets读出 ...

  6. AngularJS模块具体解释

    模块是提供一些特殊服务的功能块.比方本地化模块负责文字本地化,验证模块负责数据验证.一般来说,服务在模块内部,当我们须要某个服务的时候,是先把模块实例化.然后再调用模块的方法. 但Angular模块和 ...

  7. nginx 反向代理做域名转发简单配置

    这里用的是nginx for windows 首先进入nginx配置文件,做以下配置: server { listen 80; server_name abc.com; location / { pr ...

  8. 用nodepad++生成导入数据的SQL

    在工作中经常要往数据库里导入数据,如果是在本地,可以用SQL SERVER自带的工具 直接往表里导入或者 用ssis 导入 线上的数据库由dba负责,作为开发不能直接操作,需要程序员来生成sql语句, ...

  9. T-sql for xml path使用

    用法: FOR XML PATH 方法是用于将查询结果集以XML形式展示 sql: p.ContactTypeID,p.ModifiedDate,p.Name from [Person].[Conta ...

  10. C# 取时间段年、月、日、季度

    DateTime dt = DateTime.Now;  //当前时间             DateTime startWeek = dt.AddDays(1 - Convert.ToInt32( ...