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方式。 |
| 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前端学习:二
二一:文字font-size样式 font-size:**px 控制文字大小,可精准控制大小 默认样式medium,中等的 large,大一号 x-large,再大一号 xx-large,再大一号 small,小一号 <!DOCTYPE html…...
【第一章 计算机网络体系结构,标准化工作相关组织,性能指标,分层结构,OSI参考模型】
第一章 计算机网络体系结构,标准化工作相关组织,性能指标,分层结构,OSI参考模型 1.计算机网络: (1)概念: ①计算机网络是将一个分散的、具有独立功能的计算机系统,通过通…...
SpringIOC源码解析
Spring深度学习(一)——IOC的设计理念Spring的核心思想——IOCSpring流程图DEMO编写Spring IoC容器的加载过程实例化化容器:AnnotationConfigApplicationContext实例化建BeanDefinition读取器: AnnotatedBeanDefinitionReaderBean…...
【Jupyter Notebook的简单入门使用】
【Jupyter Notebook的简单入门使用】简单介绍安装与配置简单使用Markdown关闭简单介绍 Jupyter官网 Jupyter Notebook 介绍 简单来讲,它是一个网页应用,可以进行文档编写,甚至运行 py 代码等功能 安装与配置 下载合适版本的 python &#…...
@Component@Import@Bean加载顺序解析
【前言】 我们在使用Spring注入Bean对象时,会使用不同注解,比如Component Service Controller Import Bean等。由于Service Controller 等都可以归为Component,那么Component 和Import 、Bean是何时被加载的,以及他们之间的顺序呢…...
二极管温度补偿电路工作原理分析
众所周知,PN结导通后有一个约为0.6V(指硅材料PN结)的压降,同时PN结还有一个与温度相关的特性:PN结导通后的压降基本不变,但不是不变,PN结两端的压降随温度升高而略有下降,温度愈高其…...
【C语言】多线程之条件竞争
多线程(三)条件竞争并发程序引起的共享内存的问题死锁互斥锁机制生产者消费者模型信号量机制解决:条件竞争 #include<stdio.h> #include<stdlib.h> #include<pthread.h> void* Print(char* str){printf("%s ",s…...
UE NavigationSystem的相关实现
导航数据的构建流程导航数据的收集导航系统中绑定了Actor、Component注册完成以及取消时的委托,通过这些委托把数据及时更新到导航系统的八叉树结构中导航系统的辅助结构DefaultOctreeController、DefaultDirtyAreasController分别承担了空间数据查询和置脏区域重新…...
Java 继承
文章目录1. 继承概述2. 变量的访问特点3. super 关键字4. 构造方法的访问特点5. 成员方法的访问特点6. 方法重写7. 继承案例1. 继承概述 继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法,还可以在子类中重新定义,追加属性和方法。 publ…...
Python学习笔记8:异常
异常 一些内置的异常类 类名描述Exception几乎所有的异常类都是从它派生而来的AttributeError引用属性或给它赋值失败时引发OSError操作系统不能执行指定的任务(如打开文件)时引发,有多个子类IndexError使用序列中不存在的索引时引发&#…...
python保留小数函数总结
python保留小数——‘%f’‘%.nf’% x(定义的变量) 例子:a 82.16332 print(%.1f% a) print(%.2f% a) print(%.3f% a) print(%.4f% a) print(%.10f% a)输出结果python保留小数——format()函数Python2.6 开始ÿ…...
狐狸优化算法(Matlab代码实现)
👨🎓个人主页:研学社的博客💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密…...
浏览器自动化框架沦为攻击者的工具
5月27日消息,安全公司Team Cymru的研究人员表示,越来越多的威胁参与者正在使用免费的浏览器自动化框架作为其攻击活动的一部分。 研究人员表示,该框架的技术准入门槛故意保持在较低水平,以创建一个由内容开发者和贡献者组成的活跃…...
SQL必备知识(自用)
数据库基础知识sql和mysql的区别:数据库查询大全(select)1、select 字段名 from 表;2、In查询:用于过滤你所需要查询的内容3、范围查询:between4、模糊查询:like5、查询空值/非空:is…...
BI工具术语表大全:从字母A-Z全面收录
谈到商业智能行业,变革是不可避免的。为了跟上步伐,各种各样的BI 解决方案正在快速迭代更新,以满足企业的数字化需求,那么市场上BI 工具种类繁杂,到底如何选择适合功能全面、满足自己企业运转情况的、合适的BI 工具呢&…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化
是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可,…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...
【51单片机】4. 模块化编程与LCD1602Debug
1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...
【JavaEE】万字详解HTTP协议
HTTP是什么?-----互联网的“快递小哥” 想象我们正在网上购物:打开淘宝APP,搜索“蓝牙耳机”,点击商品图片,然后下单付款。这一系列操作背后,其实有一个看不见的“快递小哥”在帮我们传递信息,…...
WEB3全栈开发——面试专业技能点P8DevOps / 区块链部署
一、Hardhat / Foundry 进行合约部署 概念介绍 Hardhat 和 Foundry 都是以太坊智能合约开发的工具套件,支持合约的编译、测试和部署。 它们允许开发者在本地或测试网络快速开发智能合约,并部署到链上(测试网或主网)。 部署过程…...
Modbus转Ethernet IP深度解析:磨粉设备效率跃升的底层技术密码
在建材矿粉磨系统中,开疆智能Modbus转Ethernet IP网关KJ-EIP-101的应用案例是一个重要的技术革新。这个转换过程涉及到两种主要的通信协议:Modbus和Ethernet IP。Modbus是一种串行通信协议,广泛应用于工业控制系统中。它简单、易于部署和维护…...
