最近几天,我负责的P项目环境中提供给W系统的一个视图,由于查询逻辑复杂,数据量比较大,导致每次查询视图的时候,查询速度慢,效率低下,遭到了w系统人员的投诉。想了想,还是改成物化视图吧,用了物化视图,腰不酸,腿不痛,查询快了,投诉少了,谁用谁知道,呵呵。

真要详细陈述物化视图的相关内容,篇幅过大,所以此处仅记录了我自己在这次调整中所做的操作。创建最简单的物化视图,不使用快速刷新,所以此处不创建物化视图日志。

创建物化视图语句如下(因为数据问题,此处更改了查询内容):

CREATE MATERIALIZED VIEW MV_TableName
BUILD IMMEDIATE --创建时立即刷新
REFRESH FORCE --如果可以快速刷新则进行快速刷新,否则完全刷新
ON DEMAND --刷新方式
START WITH SYSDATE --第一次刷新时间
NEXT SYSDATE+1/12 --刷新时间间隔
AS SELECT 1 id ‘A’ name FROM dual;

我自己在PLSQL中执行的时候,有时会因为注释的原因,导致物化视图创建失败,所以,创建时还是删去注释吧。

 

如果某些情况想要修改刷新频率,可以使用以下命令修改刷新间隔

ALTER MATERIALIZED VIEW MV_TableName
REFRESH FORCE
ON DEMAND
START WITH SYSDATE
NEXT SYSDATE+1/144;

 

查询物化视图上次刷新时间

SELECT last_refresh_date
FROM user_mviews
WHERE mview_name = 'MV_TABLENAME';

 

手动刷新物化视图

BEGIN
dbms_mview.refresh('MV_TABLENAME');
END;

 

删除物化视图的话,可以使用如下语句

DROP MATERIALIZED VIEW MV_TableName;

ORACLE 物化视图的更多相关文章

  1. Oracle 物化视图 说明

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

  2. [O]ORACLE物化视图的使用

    用于数据复制的物化视图 物化视图的一个主要功能就是用于数据的复制,Oracle推出的高级复制功能分为两个部分,多主复制和物化视图复制.而物化视图复制就是利用了物化视图的功能. 物化视图复制包含只读物化 ...

  3. Oracle物化视图的创建及使用

    oracle物化视图 一.oracle物化视图基本概念  物化视图首先需要创建物化视图日志,  oracle依据用户创建的物化视图日志来创建物化视图日志表,  物化视图日志表的名称为mlog$_后面跟 ...

  4. ORACLE物化视图(物理视图)

    百度文库 http://wenku.baidu.com/view/f78f55c68bd63186bcebbc4b.html ORACLE物化视图 一.------------------------ ...

  5. Oracle物化视图的创建及使用(一

    Oracle物化视图的创建及使用 http://blog.csdn.net/tegwy/article/details/8935058 先看简单创建语句: create   materialized  ...

  6. Oracle物化视图的一般使用

    普通视图和物化视图根本就不是一个东西,说区别都是硬拼到一起的,首先明白基本概念,普通视图是不存储任何数据的,他只有定义,在查询中是转换为对应的定义SQL去查询,而物化视图是将数据转换为一个表,实际存储 ...

  7. ORACLE物化视图具体解释

    一.物化的一般使用方法物化视图是一种特殊的物理表,"物化"(Materialized)视图是相对普通视图而言的.普通视图是虚拟表.应用的局限性大,不论什么对视图的查询.oracle ...

  8. 解决oracle 物化视图刷新失败

    oracle 物化视图刷新失败可能原因: 1.视图未建立物化视图日志 2.基表为授权给用户 1.物化视图语法 create materialized view [view_name] refresh ...

  9. oracle物化视图

    物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询. 这样对整 ...

  10. Oracle 物化视图创建

    create materialized view MV_XXXXrefresh fast on commitwith rowidenable query rewriteasselect * from ...

随机推荐

  1. nuc950支持nand的mtd驱动的kernel修改

    支持nand的mtd驱动的kernel修改 一.更新nanddriver文件 将新的nanddriver文件nuc900_nand.c放到kernel的drivers/mtd/nand目录下 二.修改 ...

  2. linux 防火墙--firewalld学习

    firewalld是centos7默认的防火墙,相比于iptables重要的优势: 1 支持动态更新: 2 不用重启服务: 同时增加了防火墙的“zone”概念,具体差异没做过多了解,这篇文章只记录fi ...

  3. 添加view类图中的二级菜单

    void CFafdsafasdfasfasView::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message han ...

  4. ios nslog 打印字典为中文

    #import <Foundation/Foundation.h> @implementation NSDictionary (Log) - (NSString *)description ...

  5. C语言杂记 -- 简陋的<深入理解计算机系统>笔记

    程序的表示 l 32位64位操作系统是由CPU寄存器的位数决定,即虚拟寻址的范围为2^32.2^64. l 字节的大端小端法是以字节为基本单位的:比如十进制的7在十六位机器上表示 · 地址 100 1 ...

  6. 视图必须派生自 WebViewPage 或 WebViewPage错误解决方法

    1,在每个视图上面添加 @inherits System.Web.Mvc.WebViewPage 2,将views中的web.config COPY到新的视图模版文件夹下,就可以了

  7. jdbc接口api

    java.sql.* 和 javax.sql.* |- Driver接口: 表示java驱动程序接口.所有的具体的数据库厂商要来实现此接口. |- connect(url, properties): ...

  8. Visual Studio调试之断点进阶篇

    Visual Studio调试之断点进阶篇 在上一篇文章Visual Studio调试之断点基础篇里面介绍了什么是断点,INT 是Intel系列CPU的一个指令,可以让程序产生一个中断或者异常.程序中 ...

  9. AD怎样画 board shape

    先用随便那一层的线,画出你想要的边框的形状,圆角可通过shift+空格来切换出来选中你刚刚话的形状(要是闭合面),design-board sharp-define from selected obj ...

  10. PCB Layout爬电距离、电气间隙的确定

    爬电距离的确定:首先需要确定绝缘的种类:基本绝缘:一次电路与保护地工作绝缘 ① :一次电路内部:二次电路内部工作绝缘 ② :输入部分(输入继电器之前)内部,二次电路与保护地加强绝缘:一次电路与二次电路 ...