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 ...
随机推荐
- android apktool 基本的安装与使用
apktool: 1. 安装 http://ibotpeaches.github.io/Apktool/install/ 2. 基本使用 http://ibotpeaches.github.io/Ap ...
- [Functional Programming ADT] Create a Redux Store for Use with a State ADT Based Reducer
With a well defined demarcation point between Redux and our State ADT based model, hooking up to a R ...
- automake连载--Linux下使用automake入门
http://blog.csdn.net/shanzhizi/article/details/30246587 近来重要要总结一下automake的用法了,连载几篇网上已有的文章,以供参考. 作为Li ...
- Android微信支付V3版
由于公司需求做微信APP支付,在集成过程中也遇到各种问题,比如说签名错误,body编码必须为UTF-8.APP端无法调用支付页面直接到支付结果页面.结果为null,code=-1等等: 1.签名错误问 ...
- 如何使用angularjs实现文本框获取焦点
<!DOCTYPE html> <html ng-app="myApp"> <head> <title>angularjs-focu ...
- C++ new的nothrow关键字和new_handler用法
C++ new的nothrow关键字和new_handler用法 new && new(std::nothrow) new(std::nothrow) 顾名思义,即不抛出异常,当new ...
- iOS key value coding kvc在接收json数据与 model封装中的使用
iOS key value coding kvc在接收json数据与 model封装中的使用 使用 kvc 能够极大的简化代码工作,及以后的接口维护工作: 1:先创建MovieModel类.h和 . ...
- windows下at命令使用详解
T命令是Windows XP中内置的命令,它也可以媲美Windows中的“计划任务”,而且在计划的安排.任务的管理.工作事务的处理方面,AT命令具有更强大更神通的功能.AT命令可在指定时间和日期.在指 ...
- PKCS7 的 attached 和 detached 方式的数字签名
搜遍了整个网络,都没有详细的说明.只在一个页面上有介绍,还模棱两可的,地址是:http://docs.oracle.com/cd/E19398-01/820-1228/gfnmj/index.html ...
- Hashtable insert failed. Load factor too high. The most common cause is multiple threads writing to the Hashtable simultaneously
暂时也没准确定位到问题 https://support.microsoft.com/zh-cn/help/2803754/hotfix-rollup-2803754-is-available-for- ...