ORACLE物化视图入门

简介: 一  前言:        物化视图作为sql调优的高级技术,也是进行数据仓库调优的利器之一,总而言之这个技术还是比较炫的,也是比较少的能够在老板面前露一手的技术之一,很有必要了解一番; 二  概念:      视图是一个虚拟表(也可以认为是一条语句),基于它创建时指定的查询语句返回的结果集。

一  前言:

       物化视图作为sql调优的高级技术,也是进行数据仓库调优的利器之一,总而言之这个技术还是比较炫的,也是比较少的能够在老板面前露一手的技术之一,很有必要了解一番;

 

二  概念:

      视图是一个虚拟表(也可以认为是一条语句),基于它创建时指定的查询语句返回的结果集。每次访问它都会导致这个查询语句被执行一次。为了避免每次访问都执行这个查询,可以将这个查询结果集存储到一个物化视图(也叫实体化视图)。

 

三  创建的语法:

      

创建物化视图的语句

CREATE MATERIALIZED VIEW DATACHK.MV_B2B_DANWEI_R 

AS 

SELECT                                        

      "DWDM" DWDM,

       "DWMC" DWMC,

       "BYZD1" BYZD1,

       "BYZD2" BYZD2,

       "BYZD3" BYZD3,

       "BYZD4" BYZD4,

       "LastChanged" LastChanged

  FROM DANWEI;

 

 查询物化视图:SELECT  * FROM DATACHK.MV_B2B_DANWEI_R;  查询刚才的物化视图

查看执行计划:

 

五  相关参数

在学习物化视图的时候,可能有的同学就会有疑问,如果基础表通过DML或者DDL语句进行修改时,物化视图可能会保护失效数据(如果现在对基础表新内容重新运行的话,得到的数据已经不再等于物化视图查询的结果集)。由于这个原因,在基础表发生了变更之后,必须对物化视图执行一次刷新动作,在创建的物化视图的时候,可以指定如何以及何时刷新的操作

1、何时刷新:定义当ORACLE基表发生变化时物化视图的刷新时间

  • 根据需要(ON DEMAND):物化视图会在显式请求的情况下进行刷新(可以通过手工调用,也可以通过运行按照指定的时间间隔的任务)。这意味着从基础表修改带物化视图刷新这段时间内,物化视图中可能包含失效的数据。
  • 在提交时(ON COMMIT):物化视图会在基础表修改所在的同一个事务里进行自动刷新,也就是说,物化视图总是包含最新的数据;(这种方式比较少用)

2、如何刷新:定义刷新数据的方式

  • 完全刷新:容器表的所有内容都会被删除,并且所有的数据都会从基础表重新加载。所有的物化视图都支持这种方式但是效率较慢,一般在一部分的数据被修改后才去使用这种方式; 语句:REFRESH COMPLETE
  • 快速刷新:修改了的数据才会同步到容器表中。这种视图需要满足一定的条件,基础表上只有少数数据被变更后,用这种方式效率较快;
  • 强制刷新:最初会尝试快速刷新。如果无法快速刷新,就执行一次完全刷新。(默认的方法)
  • 永不刷新:物化视图永远不被刷新。特殊场景下使用;(如果这时候尝试创新,将会报错)

在实际的工作中一般根据实际的情况配置刷新的时间和方式

 

 

六  管理脚本

1、查看系统中所有物化视图的刷新时间

select refresh_method,refresh_mode,staleness,last_refresh_type,last_refresh_date   from user_mviews;

 

以上是物化视图简单的入门知识,请关注本博客后续还会陆陆续续介绍物化视图的更高级知识,敬请关注;

 

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

本文作者:JOHN

ORACLE技术博客:ORACLE 猎人笔记               数据库技术群:367875324 (请备注ORACLE管理 )  

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

相关文章
|
3月前
|
SQL 存储 Oracle
JAVAEE框架数据库技术之11 oracle入门
JAVAEE框架数据库技术之11 oracle入门
116 0
JAVAEE框架数据库技术之11 oracle入门
|
8月前
|
SQL Oracle 关系型数据库
物化视图(Oracle与PostgreSQL对比)
物化视图(Oracle与PostgreSQL对比)
|
5月前
|
存储 Oracle 关系型数据库
Oracle 入门
Oracle 入门
|
存储 SQL Oracle
ORACLE物化视图
ORACLE物化视图
|
Oracle 关系型数据库
【ogg一】入门OGG(oracle golden date)详细部署 Oracle 11g
【ogg一】入门OGG(oracle golden date)详细部署 Oracle 11g
178 0
|
存储 SQL Oracle
10 PostgreSQL 表级复制-物化视图篇, 支持异地,异构如 Oracle 到 pg 的物化视图|学习笔记
快速学习10 PostgreSQL 表级复制-物化视图篇,支持异地,异构如 Oracle 到 pg 的物化视图
423 0
10 PostgreSQL 表级复制-物化视图篇, 支持异地,异构如 Oracle 到 pg 的物化视图|学习笔记
|
SQL 存储 Oracle
Oracle数据库 PL/SQL 入门
Oracle数据库 PL/SQL 入门
|
存储 SQL Oracle
Oracle存储过程与存储函数-入门
Oracle存储过程与存储函数-入门
|
存储 Oracle 关系型数据库
Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步

推荐镜像

更多