欢迎投稿

今日深度:

创建物化视图详解(图解),物化视图详解图解

创建物化视图详解(图解),物化视图详解图解


创建物化视图详解

                

一,什么是物化视图

    物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。物化视图存储基于远程表的数据,也可以称为快照

二,作用、

类似统计功能中,查询操作是无可避免,而这些查询操作如果很频繁,对整体数据库性能是很致命的。而物化视图实现远程数据源与本地数据的实时同步,也就是定时刷新,通过在本地创建物化视图可以大大提高查询效率。

三,流程图:

 

当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的。普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询。这样对整体查询性能的提高,并没有实质上的好处。所以需要再在普通视图(view)上建立物化视图,程序通过对物化视图的访问可以大大提高效率。

 

四,图解步骤(使用PL/SQL)

1,客户端配置网络服务名

 

 

2,创建DataBase Links

 

3,创建物化视图

 

修改SQL,添加创建视图的模式,刷新的方式和同步时间间隔:


说明:

创建物化视图的模式的方式有两种:ON DEMAND 和ON COMMIT

ON DEMAND指物化视图在用户需要的时候进行刷新,可以手工刷新,也可以通过JOB定时进行刷新。

ON COMMIT指物化视图在对基表的DML操作提交的同时进行刷新。

刷新的方法有四种:FAST、COMPLETE、FORCE和NEVER

FAST:采用增量刷新,只刷新自上次刷新以后进行的修改。

COMPLETE:对整个物化视图进行完全的刷新

FORCE: Oracle在刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式。

NEVER指物化视图不进行任何刷新。

默认值是FORCE ON DEMAND。

 

4,在物化视图上创建视图(统计)

 

5,在统计视图上创建物化视图

 

五,使用命令创建步骤:

1,创建DB link

-- Drop existing database link 

drop database link ZHUHAI.COM;

-- Create database link 

create database link ZHUHAI.COM

  connect to ZHUHAI

  using 'haikou';

2,创建物化视图

CREATE MATERIALIZED VIEW MV_DBDIC

REFRESH FORCE ON DEMAND

START WITH SYSDATE

NEXT SYSDATE+(2/(24*3600))   

AS

SELECT "DBDIC"."ID" "ID","DBDIC"."DBNUM" "DBNUM","DBDIC"."NAME" "NAME" FROM "DBDIC"@ZHUHAI.COM "DBDIC";

 

3,创建视图

create or replace view countview as

select COUNT(*) COUNT

from MV_DBDIC;

4,在步骤3创建的视图上创建物化视图

create materialized view MV_COUNTVIEW

refresh force on demand

as

select *

    from COUNTVIEW;

六,注意点:

1,需要先在客户端配置数据源网络服务名

2,数据源的源表必须有主键

 

 备忘,如果有哪位同志有什么疑问,随时可以q我,共同进步

qq :843620202

 

 


物化视图怎建立,这个参数的意义?

1、给你的物化视图建立一个共有同义词【public synonym】,这样所有的用户就可以访问你的物化视图了。
2、create public synonym synonym_name for 物化视图名;
3、以后别的用户访问【synonym_name】就相当于访问你的物化视图了,而且由于是用的public别名所以不用特殊赋权限就可以。

说明:但值得注意的是要把建 public synonym 的权限给用户,
grant create public synonym to 用户;

---
以上,希望对你有所帮助。
 

物化视图创建问题

需要对表“zjhis”."xx_xx"创建物化视图日志,才可以加入物化视图。

你创建物化视图时设置的是On demand
所以并不会自动刷新,需要手动刷新或者创建job来执行。这个是需要手动创建的。

如果设置为On commit
就会在基表有更新时自动刷新。就不需要另外建job或者手动刷新了。
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/3640.html NewsArticle 创建物化视图详解(图解),物化视图详解图解 创建物化视图详解 一,什么是物化视图 物化视图是包括一个查询结果的数据库对象,它是 远程数据的的本地副本 ,或者用来生成基于...
评论暂时关闭