ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 物化视图学习一

物化视图学习一

原创 Linux操作系统 作者:onlinedog 时间:2009-12-02 13:08:03 0 删除 编辑

一、物化视图介绍

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

我们在以前的系统中对复杂的数据进行统计查询时,一般都是写复杂的sql语句或是建立视图,然后进行统计查询,如果引进物化视图来实现这些查询,会大大提升查询的性能。

二、物化视图特点

1、数据重组;

将需要查询的数据单独存储到物化视图表中,在进行复杂的业务查询时可以直接从该表中获取数据,避免表连接带来的性能损耗,提升查询性能。

2、刷新机制

Complete:完全刷新

Fast:快速刷新,即增量刷新

Force:先进行快速刷新,如果不满足快速刷新条件,再进行完全刷新。

3、刷新时机:

On commit:基表提交即刷新;

On demand:根据用户需要进行刷新

Start with..next..:设定刷新周期自动刷新。

4、查询重写

在已经建好的系统中也可以使用物化视图功能,我们可以针对查询语句建立物化视图,不必修改业务程序,系统在执行查询时,oracle后台自动进行查询路径分析,使用成本消耗更少的物化视图进行查询,提升性能。

三、物化视图的限制

快速刷新限制条件:

1.物化视图不能包含对不重复表达式的引用,如SYSDATE和ROWNUM;

2、在select子句中不能出现子查询;

3.不能包含对LONG和LONG RAW数据类型的引用。

4.不能包括GROUP BY语句或聚集操作;

5.如果在WHERE语句中包含外连接,那么唯一约束必须存在于连接中内表的连接列上;

6.如果不包含外连接,那么WHERE语句没有限制,如果包含外连接,那么WHERE语句中只能使用AND连接,并且只能使用“=”操作。

7、需要在基表上创建物化视图日志;

四、物化视图创建语法

物化视图创建语法:

create materialized view [view_name]
refresh [fast|complete|force]
[on [commit|demand] |
start with (start_time) next (next_time)
]
as
{
创建物化视图用的查询语句}

物化视图日志创建语法:

Create materialized view log on 基表 with rowid/primary key[,sequence(col1,…,coln) including new values]

五、手动刷新

1.         可以使用dbms_mview.refresh(‘物化视图’,‘c/f’);

2.         可以创建刷新组定时刷新;

3.         可以使用job进行定时刷新;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7204674/viewspace-621178/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 物化视图二
请登录后发表评论 登录
全部评论

注册时间:2008-09-16

  • 博文量
    106
  • 访问量
    228391