当前位置: 首页 > news >正文

Oracle——物化视图

文章目录

  • 含义
  • 物化视图的语法
  • 物化视图的创建
    • 1、自动刷新的物化事务 ON COMMIT
    • 2、非自动刷新的物化视图 ON demand
  • 关于手动刷新
  • 物化视图的删除
  • 资料参考

含义

什么是物化视图

物化视图,通俗点说就是物理化的视图。

什么叫物理化

将视图以表结构的方式,存储在磁盘中。

在之前的博客中针对普通视图说过,普通视图的本质就是一段 SQL 语句,本身的数据不会存储在磁盘上,每次查询时,普通视图中的数据,来源于重新执行视图中的SQL语句

普通视图就是将复杂的可共用的SQL片段的封装。

但是,每次进行视图查询操作时,都将触发视图中的sql再次执行,程序的执行,存在执行快慢的问题,在程序界中存在一个说法叫时间复杂度

物化视图相比普通视图而言,是将原本的普通视图中的SQL转换成了对应的表结构,并会在磁盘空间中进行存储。

可以理解为就是一张由SQL语句和查询字段构成的新的表。

当然,作为而言,相对应的比如索引等操作也都可以实现。

但是物化视图由于占用了更多的服务器内存空间,也就导致出现空间复杂度的问题。

程序的效率,无非就是在时间复杂度空间复杂度的取舍。

物化视图的语法

物化视图的创建语法,如下所示:

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

其中,各项关键字说明如下:

名称用途含义
materialized物化视图关键字物理化
fast刷新方式增量更新,只会刷新自上次刷新以后的修改内容。
complete刷新方式全部刷新。相当于重新执行一次创建视图的查询语句。
force刷新方式(默认刷新方式)由oracle在需要进行刷新操作时,当可以使用fast模式时,数据刷新将采用fast方式;否则使用complete方式。
nerver刷新方式视图不进行任何刷新操作。
on commit刷新时间(模态)基表数据事务提交时,立即刷新对应物化视图。
on demand刷新时间(模态)(oracle的默认类型)在用户需要刷新的时候进行刷新操作。这里就要求用户自己动手去刷新数据了(也可以使用job定时刷新)
start with (start_time) next (next_time)刷新时间从指定的时间开始,每隔一段时间(由next指定)就刷新一次

物化视图的创建

1、自动刷新的物化事务 ON COMMIT

按照上面的语法与参数说明,创建一个简单的物化视图。

创建一张物化视图表,要求在事务提交后,立刻自动刷新物化视图数据。

create MATERIALIZED VIEW mv_bl_user_list 
refresh force -- 由oracle决定该刷新的时候,采取何种方式执行
ON COMMIT  -- 刷新模态,触发点
AS 
SELECT * FROM bl_user_list

测试:
1、先执行物化视图的创建sql
2、查询基表数据信息
3、查询物化视图的数据信息
4、新增或者更新基表的数据
5、查询物化视图。
6、观察新增的数据是否自动刷新至物化视图中。

基表数据事务提交后,对应的物化视图数据也会同步及时变更!

2、非自动刷新的物化视图 ON demand

创建一个需要手动刷新数据的物化视图。

CREATE MATERIALIZED VIEW mv_bl_user_list 
refresh force
ON demand 
AS 
SELECT * FROM bl_user_list

测试:
1、先执行物化视图的创建sql
2、查询基表数据信息
3、查询物化视图的数据信息
4、新增或者更新基表的数据
5、查询物化视图。
6、观察新增的数据是否自动刷新至物化视图中。

基表的数据事务提交后,对应物化视图中的数据并不会自动刷新!

关于手动刷新

如果在创建物化视图时,设定刷新模态为 on demand 时,会需要用户进行手动刷新操作。
比如,将上述的非自动刷新视图进行数据刷新操作。

begin
--dbms_mview.refresh(TAB=>'mv_bl_user_list',METHOD=>'COMPLETE',PARALLELISM=>8);dbms_mview.refresh('mv_bl_user_list','COMPLETE');
end;

在这里插入图片描述

物化视图的删除

drop materialized view 物化视图名

资料参考

Oracle物化视图-看这一篇就可以了

相关文章:

Oracle——物化视图

文章目录含义物化视图的语法物化视图的创建1、自动刷新的物化事务 ON COMMIT2、非自动刷新的物化视图 ON demand关于手动刷新物化视图的删除资料参考含义 什么是物化视图? 物化视图,通俗点说就是物理化的视图。 什么叫物理化? 将视图以表结构…...

ur3+robotiq 2f 140配置moveit

ur3robotiq 2f 140配置moveit 参考链接1 参考链接2 官方配置movit教程 搭建环境: ubuntu: 20.04 ros: Nonetic sensor: robotiq_ft300 gripper: robotiq_2f_140_gripper UR: UR3 reasense: D435i 通过下面几篇博客配置好了ur3、力传感器、robotiq夹爪…...

LDO 芯片烫手,问题出在哪里?

设计失误的一个电路,该电路是数字电路的电源,为图方便对12V直接通过线性电源芯片降压到5V: 图1:线性电源降压12V转5V 几块电路板打样好后,测试均发现AMS1117-5.0芯片烫手,负载电流100mA多,也满…...

零日漏洞发展格局及防御策略

在过去的一年半中, 在野利用的零日漏洞数量持续飙升 ,这些软件制造商尚不知晓的漏洞正在被国家行为体黑客组织和勒索软件团伙滥用。 今年上半年,Google Project Zero统计了近20个零日漏洞,其中 大部分针对微软、苹果和谷歌构建的…...

RabbitMQ 可用磁盘空间报警

概要当磁盘可用空间低于设定的值(默认50M),将触发警报,并阻塞所有生产者。这目标是为了避免填满整个磁盘,这将导致所有节点上的写入操作失败,并可能导致RabbitMQ停止服务。如何工作为了减少磁盘被填满的风险…...

Web前端学习:二

二一&#xff1a;文字font-size样式 font-size&#xff1a;**px 控制文字大小&#xff0c;可精准控制大小 默认样式medium&#xff0c;中等的 large&#xff0c;大一号 x-large&#xff0c;再大一号 xx-large&#xff0c;再大一号 small&#xff0c;小一号 <!DOCTYPE html…...

【第一章 计算机网络体系结构,标准化工作相关组织,性能指标,分层结构,OSI参考模型】

第一章 计算机网络体系结构&#xff0c;标准化工作相关组织&#xff0c;性能指标&#xff0c;分层结构&#xff0c;OSI参考模型 1.计算机网络&#xff1a; &#xff08;1&#xff09;概念&#xff1a; ①计算机网络是将一个分散的、具有独立功能的计算机系统&#xff0c;通过通…...

SpringIOC源码解析

Spring深度学习&#xff08;一&#xff09;——IOC的设计理念Spring的核心思想——IOCSpring流程图DEMO编写Spring IoC容器的加载过程实例化化容器&#xff1a;AnnotationConfigApplicationContext实例化建BeanDefinition读取器&#xff1a; AnnotatedBeanDefinitionReaderBean…...

【Jupyter Notebook的简单入门使用】

【Jupyter Notebook的简单入门使用】简单介绍安装与配置简单使用Markdown关闭简单介绍 Jupyter官网 Jupyter Notebook 介绍 简单来讲&#xff0c;它是一个网页应用&#xff0c;可以进行文档编写&#xff0c;甚至运行 py 代码等功能 安装与配置 下载合适版本的 python &#…...

@Component@Import@Bean加载顺序解析

【前言】 我们在使用Spring注入Bean对象时&#xff0c;会使用不同注解&#xff0c;比如Component Service Controller Import Bean等。由于Service Controller 等都可以归为Component&#xff0c;那么Component 和Import 、Bean是何时被加载的&#xff0c;以及他们之间的顺序呢…...

二极管温度补偿电路工作原理分析

众所周知&#xff0c;PN结导通后有一个约为0.6V&#xff08;指硅材料PN结&#xff09;的压降&#xff0c;同时PN结还有一个与温度相关的特性&#xff1a;PN结导通后的压降基本不变&#xff0c;但不是不变&#xff0c;PN结两端的压降随温度升高而略有下降&#xff0c;温度愈高其…...

【C语言】多线程之条件竞争

多线程&#xff08;三&#xff09;条件竞争并发程序引起的共享内存的问题死锁互斥锁机制生产者消费者模型信号量机制解决&#xff1a;条件竞争 #include<stdio.h> #include<stdlib.h> #include<pthread.h> void* Print(char* str){printf("%s ",s…...

UE NavigationSystem的相关实现

导航数据的构建流程导航数据的收集导航系统中绑定了Actor、Component注册完成以及取消时的委托&#xff0c;通过这些委托把数据及时更新到导航系统的八叉树结构中导航系统的辅助结构DefaultOctreeController、DefaultDirtyAreasController分别承担了空间数据查询和置脏区域重新…...

Java 继承

文章目录1. 继承概述2. 变量的访问特点3. super 关键字4. 构造方法的访问特点5. 成员方法的访问特点6. 方法重写7. 继承案例1. 继承概述 继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法&#xff0c;还可以在子类中重新定义&#xff0c;追加属性和方法。 publ…...

Python学习笔记8:异常

异常 一些内置的异常类 类名描述Exception几乎所有的异常类都是从它派生而来的AttributeError引用属性或给它赋值失败时引发OSError操作系统不能执行指定的任务&#xff08;如打开文件&#xff09;时引发&#xff0c;有多个子类IndexError使用序列中不存在的索引时引发&#…...

python保留小数函数总结

python保留小数——‘%f’‘%.nf’% x&#xff08;定义的变量&#xff09; 例子&#xff1a;a 82.16332 print(%.1f% a) print(%.2f% a) print(%.3f% a) print(%.4f% a) print(%.10f% a)输出结果python保留小数——format&#xff08;&#xff09;函数Python2.6 开始&#xff…...

狐狸优化算法(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…...

浏览器自动化框架沦为攻击者的工具

5月27日消息&#xff0c;安全公司Team Cymru的研究人员表示&#xff0c;越来越多的威胁参与者正在使用免费的浏览器自动化框架作为其攻击活动的一部分。 研究人员表示&#xff0c;该框架的技术准入门槛故意保持在较低水平&#xff0c;以创建一个由内容开发者和贡献者组成的活跃…...

SQL必备知识(自用)

数据库基础知识sql和mysql的区别&#xff1a;数据库查询大全&#xff08;select&#xff09;1、select 字段名 from 表&#xff1b;2、In查询&#xff1a;用于过滤你所需要查询的内容3、范围查询&#xff1a;between4、模糊查询&#xff1a;like5、查询空值/非空&#xff1a;is…...

BI工具术语表大全:从字母A-Z全面收录

谈到商业智能行业&#xff0c;变革是不可避免的。为了跟上步伐&#xff0c;各种各样的BI 解决方案正在快速迭代更新&#xff0c;以满足企业的数字化需求&#xff0c;那么市场上BI 工具种类繁杂&#xff0c;到底如何选择适合功能全面、满足自己企业运转情况的、合适的BI 工具呢&…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

UE5 学习系列(三)创建和移动物体

这篇博客是该系列的第三篇&#xff0c;是在之前两篇博客的基础上展开&#xff0c;主要介绍如何在操作界面中创建和拖动物体&#xff0c;这篇博客跟随的视频链接如下&#xff1a; B 站视频&#xff1a;s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时&#xff0c;与数据库的交互无疑是核心环节。虽然传统的数据库操作方式&#xff08;如直接编写SQL语句与psycopg2交互&#xff09;赋予了我们精细的控制权&#xff0c;但在面对日益复杂的业务逻辑和快速迭代的需求时&#xff0c;这种方式的开发效率和可…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

P3 QT项目----记事本(3.8)

3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案

随着新能源汽车的快速普及&#xff0c;充电桩作为核心配套设施&#xff0c;其安全性与可靠性备受关注。然而&#xff0c;在高温、高负荷运行环境下&#xff0c;充电桩的散热问题与消防安全隐患日益凸显&#xff0c;成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

现代密码学 | 椭圆曲线密码学—附py代码

Elliptic Curve Cryptography 椭圆曲线密码学&#xff08;ECC&#xff09;是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础&#xff0c;例如椭圆曲线数字签…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

【Java学习笔记】BigInteger 和 BigDecimal 类

BigInteger 和 BigDecimal 类 二者共有的常见方法 方法功能add加subtract减multiply乘divide除 注意点&#xff1a;传参类型必须是类对象 一、BigInteger 1. 作用&#xff1a;适合保存比较大的整型数 2. 使用说明 创建BigInteger对象 传入字符串 3. 代码示例 import j…...