前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >oracle--物化视图

oracle--物化视图

作者头像
eadela
发布2019-09-29 16:11:39
8530
发布2019-09-29 16:11:39
举报
文章被收录于专栏:eadelaeadela

全表提交

代码语言:javascript
复制
增量刷新 一天提交一次
代码语言:javascript
复制
必须创建log 而且 要使用rowid
代码语言:javascript
复制
  增量 一分钟刷一次
代码语言:javascript
复制
--注意,我们的基表必须要有主键.
create table B (clsid int primary key, name varchar2(10));
create table A (id int primary key, name varchar2(10), clsid int, constraint fk_cls_id foreign key (clsid) references B(clsid));
insert into b values(1,'一班');
insert into b values(2,'二班');
insert into a values(1, '张三', 1);
insert into a values(2, '李四', 1);
insert into a values(3, '王五', 2);
commit;
--语法如下:
DROP MATERIALIZED VIEW V_AB;
CREATE MATERIALIZED VIEW V_AB
REFRESH FORCE ON COMMIT
AS 
SELECT A.ID, A.NAME, B.CLSID, B.NAME AS CLSNAME 
FROM A,B WHERE A.CLSID =B.CLSID;

SELECT *  FROM V_AB;

SELECT * FROM USER_TABLES;

DROP MATERIALIZED VIEW MV_AB;
CREATE MATERIALIZED VIEW MV_AB
REFRESH FORCE ON DEMAND 
START WITH SYSDATE 
NEXT SYSDATE+1 
AS  
SELECT A.ID, A.NAME, B.CLSID, B.NAME AS CLSNAME 
FROM A,B WHERE A.CLSID =B.CLSID;

SELECT *  FROM MV_AB;

UPDATE A SET NAME = '张四' where id = 1;
commit;

--语法如下:
CREATE MATERIALIZED VIEW LOG ON A WITH ROWID;
CREATE MATERIALIZED VIEW LOG ON B WITH ROWID;

CREATE MATERIALIZED VIEW MV_AB2 
REFRESH FAST ON DEMAND 
START WITH SYSDATE 
NEXT SYSDATE+1/1440 
AS 
SELECT A.ROWID AS AROWID, B.ROWID AS BROWID, A.ID, A.NAME, B.CLSID, B.NAME AS CLSNAME 
FROM A,B WHERE A.CLSID=B.CLSID;

SELECT *  FROM MV_AB2;

UPDATE A SET NAME = '张三' where id = 1;commit;
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档