Tuning 16 Using Materialized view



物化视图表示在数据库的其他地方另外存放了一份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的更多相关文章
- 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)); ...
- [terry笔记]物化视图 materialized view基础学习
一.物化视图定义摘录: 物化视图是包括一个查询结果的数据库对像(由系统实现定期刷新数据),物化视图不是在使用时才读取,而是预先计算并保存表连接或聚集等耗时较多的操作结果,这样在查询时大大提高了 ...
- MATERIALIZED VIEW
Oracle的实体化视图提供了强大的功能,可以用在不同的环境中,实体化视图和表一样可以直接进行查询.实体化视图可以基于分区表,实体化视图本身也可以分区. 主要用于预先计算并保存表连接或聚集等耗时较多的 ...
- Advanced Replication同步复制实验(基于Trigger&基于Materialized View)
1. 高级复制和流复制介绍 1.1 高级复制(Advanced Replication) 高级复制也称为对称复制,分为多主体站点复制(Multiple Master Rplication).物化视图站 ...
- 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 * ...
- 物化视图(materialized view) 实现数据迁移、数据定时同步
近日公司有一个9i 的Oracle数据库,运行效率低下.想要将其升级到11G. 但是升级之前 要将数据进行同步,好在表不是很多.只有三张表.业务压力也不大,就想到了使用物 化视图的方式将数据同步过来. ...
- Materialized View模式
Materialized-View模式是在要求数据格式不利于查询操作的情况下,根据多个数据仓库的数据生成预生成的视图的一种模式.这种模式可以帮助支持高效的查询和数据提取,提高应用程序的性能. 问题 在 ...
- 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 ...
- 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 ...
随机推荐
- github下fork后如何同步源的新更新
当然,那是完全不用命令行的办法,其实我还是更推荐命令行,流程如下: 首先要先确定一下是否建立了主repo的远程源: git remote -v 如果里面只能看到你自己的两个源(fetch 和 push ...
- 7个高级技巧帮助你释放大量Mac OS X硬盘空间
7个高级技巧帮助你释放大量Mac OS X硬盘空间 https://blog.csdn.net/hu434587115/article/details/72874811/
- [Android Pro] android中permission_group与permisson区别、作用
转载:http://blog.csdn.net/feng88724/article/details/6409313 其实Android在定义 permission 时, 为每个Permission都进 ...
- MVC入门教程二[第一个小Demo](转载)
本文目标 1.了解"模型"."视图"."控制器"的创建.调试和使用过程. 本文目录 1.创建模型 2.创建视图 3.创建控制器 4.调试 5 ...
- JMS与Spring之二(用message listener container异步收发消息)
转自:http://blog.csdn.net/moonsheep_liu/article/details/6684948
- VS2013编译boost1.55库
1. 官网下载最新的Boost库,我的是1.55 2. 在使用vs2013编译boost-1.55.0之前,先要给boost做下修改: boost_1_55_0\boost\intrusive\det ...
- 细数Python的特殊方法一:集合类
1. 特殊方法汇总列表 2. 仿集合类 __len__:返回对象的长度 __getitem__:获得某一项的值 __setitem__:设置莫一项的值 __delitem__删除某一项 __c ...
- Firefly 流程架构
print '----startmaster------' 1print '----appmain------' 2 print '----netserver------' 3 print '---- ...
- 算法笔记_162:算法提高 复数归一化(Java)
目录 1 问题描述 2 解决方案 1 问题描述 编写函数Normalize,将复数归一化,即若复数为a+bi,归一化结果为a/sqrt(a*a+b*b) + i*b/sqrt(a*a+b*b) . ...
- 算法笔记_102:蓝桥杯练习 算法提高 快乐司机(Java)
目录 1问题描述 2 解决方案 1 问题描述 问题描述 "嘟嘟嘟嘟嘟嘟 喇叭响 我是汽车小司机 我是小司机 我为祖国运输忙 运输忙" 这是儿歌“快乐的小司机”.话说现在当司机光 ...