什么是视图?普通视图和物化视图什么区别?看这一篇就明白了

2023-11-19

普通视图

视图可以理解为一张表或多张表的预计算,这些表称为基表

它可以将所需要查询的结果封装成一张虚拟表,基于它创建时指定的查询语句返回的结果集。

视图具有以下特点:

  • 安全性:只将需要的结果呈现出来,查询者不知道具体用了哪些表或哪些字段,因此比较安全;
  • 屏蔽复杂性:下层计算可能做了很多复杂的关联操作,只需要让开发者将其实现,将结果以视图呈现给使用者。

如何创建普通视图

CREATE [OR REPLACE] VIEW view
[(alias[, alias]...)]
AS subquery
[WITH READ ONLY];

例如:

create view v_emp as select * from emp where deptno = 30;

物化视图

对于普通视图而言,其真实数据在基表中,即每次查询视图都是需要执行查询语句。

有时候为了防止每次都查询,将结果集存储起来,这种有真实数据的视图,称为物化视图。

什么情况下适合用物化视图?

基表没有很多 DML,且每次查询都需要耗费较大资源的情况下,可以考虑用物化视图。

物化视图的创建是这样的:

CREATE METERIALIZED VIEW view_name
[BUILD IMMEDIATE | BUILD DEFERRED ]①
REFRESH [FAST|COMPLETE|FORCE]② 
[ON [COMMIT |DEMAND ] | START WITH (start_time) NEXT(next_time)]③
AS subquery

① BUILD IMMEDIATE 创建物化视图的时候就生成数据;

BUILD DEFERRED 创建时不生成数据,以后根据需要再生成。理解为创建一个空的视图。

默认是 BUILD IMMEDIATE。

② REFRESH:当基表发生 DML 操作后,物化视图何时采用哪种方式和基表同步数据。

REFRESH 后面跟着的刷新方法有:FAST、COMPLETE、FORCE。

  • FAST:增量刷新,只刷新自上次刷新以后进行的修改。

  • COMPLETE:对整个物化视图进行完全的刷新,相当于先 truncate 再 insert。

  • FORCE:默认的刷新方式。刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式。

③ 刷新的模式有两种:ON DEMAND 和 ON COMMIT。默认为 ON DEMAND

  • ON DEMAND 需要手动刷新物化视图。

  • ON COMMIT 在基表发生 COMMIT 操作时刷新。

增量刷新是如何判断哪些记录被改动的?

通过对基表建立物化视图日志,就可以监测到基表的变动。

每当基表有变动的时候就会往对应的物化视图日志中写入数据。

当进行 Fast 刷新的时候,物化视图日志中的改动就会写入到物化视图中,这样就实现了增量刷新。

物化视图创建案例

create materialized view my_materialized
refresh complete 
on demand start with sysdate next
to_date(concat(to_char(sysdate + 1,'dd-mm-yyyy'),'00:03:00'),'dd-mm-yyyy hh24:mi:ss')  
as select * from  user_info;  

这个物化视图表示从当前日期开始,往后每天 00:03 进行全量覆盖刷新。

------------------------------------------------✂----------------------------------------------

如果觉得对你有帮助,或者觉得还行的话,麻烦动动小手点个小赞。

转载请注明出处 【大数据的奇妙冒险】

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是视图?普通视图和物化视图什么区别?看这一篇就明白了 的相关文章

随机推荐

  • Unity里清除Console控制台Log的函数

    Log输出部分转发来自 http blog sina com cn s blog 13c4bf4b40102wz0r html 在控制台输出中 是开发者常用到的一种函数 通过Debug类来实现 打印字符串 Debug Log log 如果有
  • PyTorch深度学习框架(一)

    文章目录 pytorch安装步骤 pytorch基本使用方法 view操作 改变矩阵维度 格式转化 numpy lt gt torch 自动求导机制 例子实现 线性回归模型 常见的tensor格式 pytorch安装步骤 pip3 inst
  • 基础算法题——画树(卡特兰数)

    卡特兰数简介 卡特兰数又称卡塔兰数 英文名Catalan number 是组合数学中一个常出现在各种计数问题中出现的数列 卡特兰数前几项为 1 1 2 5 14 42 132 429 1430 4862 16796 58786 208012
  • Excel制作导入模板,多级联动下拉框(一整列的设置),修改一级下拉框内容,自动清空二级内容

    目录 效果展示 一 数据准备 二 模板制作 原因1 为空 原因二 名称管理器数据有误 三 修改一级下拉框内容 自动清空二级内容 1 效果演示 2 实际操作 效果展示 一 数据准备 1 新建一张表 在sheet2中放入数据 如图所示 2 点击
  • 提取任务相关成分的TRCA算法

    提取任务相关成分的TRCA算法 1 TRCA算法简介 2 TRCA算法原理与推导 3 Ensemble TRCA算法原理简介 1 TRCA算法简介 虽然基于CCA的方法在识别SSVEP信号方面具有不错的表现 但这类方法的性能仍旧易受到自发脑
  • 阿里云oss上传和下载

    这段为上传的代码 账号之类前往注册 可以根据个人情况进行修改 上传文件 param endPoint 路径 param bucketName 桶名称 param fileName 文件绝对路径和名称 param ossPath 上传存储路径
  • 线程池的使用实例

    线程池的使用实例 number 创建线程个数 创建线程池 ExecutorService cachedThreadPool Executors newCachedThreadPool 每次线程执行完毕 计数 1 当计数减到 0 之后 才能解
  • 红帽7.9部署telnet服务

    升级ssh 为预防万一提前配置telnet服务 安装软件包 yum install telnet server yum install xinetd xinetd加入开机自启 systemctl enable xinetd service
  • DB2分组查询之row_number() over(partition by order by )说明

    作用 数据库根据某几个字段去除重复记录 并进行排序 语法 ROW NUMBER OVER PARTITION BY COL1 ORDER BY COL2 功能 表示根据COL1分组 在分组内部根据 COL2排序 而这个值就表示每组内部排序后
  • 图像的打开、修改、显示和保存示例(>OpenCV 2.0)

    代码如下 include
  • Vue项目中使用Sass变量自定义ag-grid表格主题样式

    1 在Vue项目中新建一个样式文件 src assets styles table scss 引入ag grid默认的样式文件 table scss ag icons path node modules ag grid community
  • 蓝桥杯每日一题2023.9.16

    蓝桥杯2022年第十三届省赛真题 X进制减法 C语言网 dotcpp com 题目描述 进制规定了数字在数位上逢几进一 X 进制是一种很神奇的进制 因为其每一数位的进制并不固定 例如说某种 X 进制数 最低数位为二进制 第二数位为十进制 第
  • 【机器学习】【逻辑回归】最大似然估计的推导和求解步骤和梯度上升算法求解

    伯努利分布 如果随机变量X 0 1 并且相应的概率满足 P X 1 p 0
  • halfShader 模型切割

    Shader Unlit halfShader Properties Diffuse Diffuse Color 1 1 1 1 MainTex Texture 2D white StartCutoff StartCutoff Range
  • Kafka 架构及原理分析

    Kafka 架构及原理分析 文章目录 Kafka 架构及原理分析 简介 使用场景 架构 Broker Topic 副本机制 存储 消费分组 消费编号 数据多写支持 基于 binlog 实现主从复制 Kafka 的进阶功能 消息幂等性 事务
  • (五)数据清理之stata的使用----------变量进行具体处理的命令

    br 浏览文件所存储的内容 set obs n 具体样本数量 该命令会自动帮你生成n个样本 list 显示样本的内容 使用方法为 list in 5 显示第5个样本的内容 list in 1 10 表示至的关系 显示1到至10的样本内容 l
  • ldap 初始化配置

    dn cn config objectClass olcGlobal cn config olcArgsFile var run openldap slapd args olcPidFile var run openldap slapd p
  • 数学建模之BP神经网络

    1 BP网络基本数学原理 BP网络是一种多层前馈神经网络 它的名字源于在网络训练中 调整网络权值的训练算法是反向传播算法 即BP学习算法 BP网络是一种具有三层或者三层以上神经元的神经网络 包括输入层 隐含层和输出层 上下层之间实现全连接
  • Vuetify笔记(6):v-form表单及校验

    在表单验证方面 Vuetify拥有集成了众多的功能 想要使用第三方验证插件 您可以开箱即用Vee validate和Vuelidate 1 v form表单 1 1 v form的属性和方法 v form表单的常用属性 1 lazy val
  • 什么是视图?普通视图和物化视图什么区别?看这一篇就明白了

    目 录 普通视图 如何创建普通视图 物化视图 增量刷新是如何判断哪些记录被改动的 物化视图创建案例 普通视图 视图可以理解为一张表或多张表的预计算 这些表称为基表 它可以将所需要查询的结果封装成一张虚拟表 基于它创建时指定的查询语句返回的结