`
qiansheng1987
  • 浏览: 5607 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle 物化视图与普通视图

阅读更多

1.什么是物化视图及其作用
       物化视图是数据库中的一种存储数据的对象,和表一样,存储了数据。用于预先计算并保存表连接或者聚集等耗时较多的操作。这样,在执行查询的时候,就可以避开连接、聚集等耗时的操作,从而快速的得到结果。它可以查询表,视图甚至是其他物化视图中的数据。和视图不同的是,它存储了实实在在的数据,而视图只是存储了定义而已,所以,也是可以在物化视图上创建索引的。物化视图在很多方面,和索引很相似:使用它的主要目的是为了提高查询性能;物化视图对应用是透明的,增加或者删除物化视图不会影响应用程序中查询语句的正确性和有效性;物化视图会占用存储空间;当基表发生变化时,物化视图也应当刷新。通常情况下,物化视图被称为主表(在复制期间)或者明细表(在数据仓库中)。
2.创建物化视图  

CREATE MATERIALIZED VIEW MV_NAME [ON PREBUILT TABLE] 
     [TABLESPACE TABLESPACE_NAME]  
     [BUILD IMMEDIATE | DEFERRED]  
     [REFRESH [FAST | COMPLETE | FORCE]             
     [ON DEMAND | COMMIT]            
     [START WITH DATE]            
     [NEXT DATE]  
     [WITH PRIMARY KEY | ROWID]]  
    [ENABLE QUERY REWRITE | DISABLE QUERY REWRITE]  AS  
SELECT CLAUSE   

  
以上是创建物化视图的比较完整命令,其中的[ ]部分均是可选的。下面分别对它们进行说明。 

MV_NAME : 是物化视图的名称一般是XXX_MV形式的; 
ON PREBUILT TABLE : 将已经存在的表注册为物化视图。同时还需要提供描述创建该表的查询的SELECT子句。对于这个语句,知道的并不多。 

TABLESPACE  : 指定物化视图存放的表空间。 
BUILD 子句 : 指定何时生成数据。IMMEDIATE指定在创建物化视图时就生成数据;

DEFERRED指定在创建时并不生成数据,以后根据需要生成数据。默认为IMMEDIATE选项。 
REFRESH 子句 : 指定当基表的数据发生变化时,物化视图何时以何种方式和基表进行同步。FAST指定增量刷新方式,也就是只刷新自上次刷新后被修改的数据;

COMPLETE 指定对整个物化视图进行完全刷新;

FORCE是默认选项,指定在刷新数据时,先判断是否能够使用FAST方式进行刷新,如果可行,则采用FAST方式刷新,如果不可行,则使用COMPLETE方式刷新。

ON DEMAND指定物化视图在用户需要的时候进行刷新,可以手工刷新,通过使用DBMS_MVIEW.REFRESH等方式刷新,也可以通过JOB方式进行定时刷新,可以到表USER_JOBS中查看JOB的信息;

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

START WITH指定第一次刷新的时间;NEXT指定刷新的时间间隔。 
WITH PRIMARY KEY: 指定生成主键物化视图,也就是物化视图是基于表的主键,而不是ROWID(对应于ROWID选项)。如果要使用WITH PRIMARYKEY选项,基表上应该定义了主键,否则只能使用ROWID选项。WITH PRIMARY是默认选项。

RowID物化视图只有一个单一的主表,不能包括下面任何一项:Distinct 或者聚合函数;Group by,子句,连接和Set操作。 
ENABLE/DISABLE QUERY REWIRTE : 指定是否支持查询重写,默认不支持。查询重写是指当对物化视图的基表进行查询时,Oracle会自动判断能否通过查询物化视图来得到结果,如果可以,则避免了聚集或连接操作,而直接从已经计算好的物化视图中读取数据。 

SELECT 子句 : 从基表取数据的查询语句,和普通的查询语句没有区别。

       实际上,oracle提供了两个包:DBMS_MVIEW、DBMS_REFRESH、DBMS_OLAP,用于对物化视图进行管理。
DBMS_MVIEW用于管理物化视图;
DBMS_REFRESH用于管理物化视图的刷新; 
DBMS_OLAP用于确定物化视图是否能提高查询的性能。 

分享到:
评论

相关推荐

    Oracle物化视图创建和使用

    Oracle 物化视图创建和使用 Oracle 物化视图是一种预先计算并保存表连接或聚集等耗时较多的操作的结果,以提高查询性能。物化视图对应用程序透明,不会影响应用程序的正确性和有效性,但需要占用存储空间。基表发生...

    Oracle物化视图应用详解

    Oracle物化视图是一种数据库对象,它存储了查询结果,以提供快速的数据访问,特别适合于需要频繁查询但计算过程复杂或涉及大量数据连接的场景。物化视图的使用可以显著提高查询性能,因为它避免了每次查询时的计算...

    oracle物化视图_循序渐进学习笔记

    Oracle物化视图是一种在数据库中预先计算并存储视图查询结果的数据对象,它与普通的视图不同,普通视图在查询时动态地基于基表数据生成结果,而物化视图则拥有自己的物理存储,提供了对数据的快速访问。在本篇循序渐...

    Oracle物化视图增量刷新的应用研究.pdf

    Oracle 物化视图是 Oracle 公司提供的一种新技术,可以解决很多普通逻辑视图无法完成的功能。物化视图操作简单,支持增量刷新及全量刷新,可以支持复杂的表连接、聚合函数等操作,为数据的加工创建了便捷条件,提高...

    oracle 物化视图详解(内含例子)

    与普通的视图不同,普通视图只是一种虚拟表,在执行查询时才动态地计算结果,而物化视图则是预计算的结果,存储在磁盘上。因此,物化视图的主要作用在于提高某些查询的性能,尤其是在需要频繁执行复杂的聚合查询的...

    SQL 优化之 oracle物化视图

    Oracle 物化视图 Oracle 物化视图是数据库对象,存储远程表的数据副本,也可以称为快照。物化视图可以查询表、视图和其他物化视图。通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。 创建...

    利用ORACLE物化视图建立报表数据库.pdf

    ORACLE物化视图是指包含一个查询结果的数据库对象,相对于普通视图而言,物化视图是一个物理表。物化视图也是一种段,具有自己的物理存储属性,并占用数据库磁盘空间。物化视图可以基于表、视图、物化视图上创建;...

    Oracle数据库中物化视图的原理剖析

    Oracle数据库中的物化视图(Materialized View,简称MV)是一种强大的优化工具,它通过预先计算并存储查询结果,提供了一种快速访问复杂查询数据的方式。这种技术在数据仓库环境中尤其有用,因为数据仓库通常涉及...

    Oracle物化视图使用[文].pdf

    物化视图与普通的视图不同,后者是逻辑上的虚表,其内容在查询时动态计算,而物化视图则是预先计算并存储在数据库中的实际数据表。 在Oracle数据库中,物化视图有两种刷新策略:ON DEMAND和ON COMMIT。ON DEMAND...

    ORACLE9I物化视图

    ### ORACLE9I 物化视图 #### 执行概览 随着数据库技术的发展,无论是数据仓库、数据集市还是在线事务处理(OLTP)系统,都承载着大量的等待被发现和理解的信息。然而,在海量数据中及时准确地查找并呈现这些信息...

    物化视图普通视图区别,很不错的资料

    物化视图与普通视图是数据库中两种不同的视图类型,它们在功能和使用上有显著的区别。普通视图,也称为虚拟视图,是一种逻辑上的表,它并不实际存储数据,而是根据定义的SQL查询在运行时动态生成结果。这意味着每次...

    基于Oracle物化视图日志的数据同步技术研究.pdf

    Oracle物化视图日志是一种强大的数据同步技术,尤其适用于分布式数据库和分布式应用系统之间的数据一致性维护。在当今信息化系统中,随着技术的快速发展,数据的分布性和实时性需求日益增强,数据同步成为了一个关键...

    ORACLE 物化视图 详解

    ### ORACLE 物化视图详解 #### 一、物化视图概述 在Oracle数据库中,物化视图(Materialized View)是一种特殊的数据库对象,它存储的是一个查询的结果集,可以理解为一个预计算的快照。物化视图主要用于提高报表...

    基于Oracle物化视图的查询性能优化.pdf

    物化视图与普通视图的主要区别在于物理存储和更新方式。普通视图不占用物理空间,每次使用时都需要重新执行SQL获取最新数据,性能受查询语句复杂度影响。而物化视图则是一个实际的物理表,占用了磁盘空间,并且会...

    Oracle怎么根据物化视图日志快速刷新物化视图

    ### Oracle如何根据物化视图日志快速刷新物化视图 #### 一、物化视图及其日志介绍 在Oracle数据库中,物化视图(Materialized View)是一种特殊的对象,它存储了预计算查询的结果,从而可以提高查询性能。物化视图...

Global site tag (gtag.js) - Google Analytics