Oracle-物化视图基本操作
-- 物化视图
-- 与普通视图的区别:真实存在数据的 普通视图的数据在基表
物化视图看成是, 一个定时运行的计算JOB+一个存计算结果的表
创建时生成数据:
分为两种:build immediate 和 build deferred,
build immediate是在创建物化视图的时候就生成数据。
build deferred则在创建时不生成数据,以后根据需要在生成数据。
如果不指定,则默认为build immediate。
刷新模式:
物化视图有二种刷新模式:
在创建时refresh mode是 on demand 还是 on commit。
on demand 顾名思义,仅在该物化视图“需要”被刷新了,才进行刷新(REFRESH),即更新物化视图,以保证和基表数据的一致性;
on commit 提交触发,一旦基表有了commit,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。
一般用这种方法在操作基表时速度会比较慢。
创建物化视图时未作指定,则Oracle按 on demand 模式来创建。
上面说的是刷新的模式,针对于如何刷新,则有三种刷新方法:
-- 增量或者全量
完全刷新(COMPLETE): 会删除表中所有的记录(如果是单表刷新,可能会采用TRUNCATE的方式),然后根据物化视图中查询语句的定义重新生成物化视图。
快速刷新( FAST ): 采用增量刷新的机制,只将自上次刷新以后对基表进行的所有操作刷新到物化视图中去。FAST必须创建基于主表的视图日志。
对于增量刷新选项,如果在子查询中存在分析函数,则物化视图不起作用。
FORCE方式:这是默认的数据刷新方式。Oracle会自动判断是否满足快速刷新的条件,如果满足则进行快速刷新,否则进行完全刷新。
关于快速刷新:Oracle物化视图的快速刷新机制是通过物化视图日志完成的。Oracle通过一个物化视图日志还可以支持多个物化视图的快速刷新。
物化视图日志根据不同物化视图的快速刷新的需要,可以建立为ROWID或PRIMARY KEY类型的。
还可以选择是否包括SEQUENCE、INCLUDING NEW VALUES以及指定列的列表。
-- 去到dba用户给user用户授权
grant create materialized view to user;
-- 回收权限
revoke create materialized view from user;
-- 创建物化视图
create materialized view emp_test_mv
refresh fast
on commit
as
select * from emp_test;
-- 创建一张测试源表
create table emp_test as select * from emp;
-- 删除物化视图
drop materialized view emp_test_mv;
-- 在源表创建主键 否则报错
alter table emp_test add constraint pk_emp_test_empno primary key(empno) ;
-- 删除物化视图日志
drop materialized view log on emp_test;
-- 在源表建立物化视图日志 否则报错 日志指定为主键类型
create materialized view log on emp_test
with primary key;
-- 在代码里面指定物化视图的刷新时间
-- 在每天18:58进行刷新
create materialized view emp_test_mv
refresh fast
start with sysdate
next to_date(concat(to_char( sysdate,'dd-mm-yyyy'),'19:05:00'),'dd-mm-yyyy hh24:mi:ss')
as
select * from emp_test;
-- 指定三分钟刷新一次
create materialized view emp_test_mv
refresh FAST
START WITH sysdate
next SYSDATE + 1/24/20
as
select * from emp_test;
相关文章:

Oracle-物化视图基本操作
-- 物化视图 -- 与普通视图的区别:真实存在数据的 普通视图的数据在基表 物化视图看成是, 一个定时运行的计算JOB一个存计算结果的表 创建时生成数据: 分为两种:build immediate 和 build deferred, build immediate是在创…...

(功能测试)测试报告
其中的统计分析和测试结果确认是必须要有的; 测试过程回顾:测试的时间和阶段,是否出现延期,与预期的任务计划是否匹配; !统计分析:统计写多少用例,用例覆盖情况如何(100%…...

【LeetCode每日一题】——746.使用最小花费爬楼梯
文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时空频度】九【代码实现】十【提交结果】 一【题目类别】 数组 二【题目难度】 简单 三【题目编号】 746.使用最小花费爬楼梯 四【题目描述】 给你一…...

程序里sendStringParametersAsUnicode=true的配置导致sql server cpu使用率高问题处理
一 问题描述 近期生产环境几台sql server从库cpu使用率总是打满,发现抓的带变量值的慢sql,手动代入变量值执行并不慢,秒级返回,不知道问题出在哪里。 二 问题排查 用扩展事件或者sql profiler抓慢sql,抓到了变量值&…...

Vue3 el-table 默认选中 传入的数组
一、效果: 二、官网是VUE2 现更改为Vue3写法 <template><el-table:data"tableData"border striperow-key"id"ref"tableRef":cell-style"{ text-align: center }":header-cell-style"{background: #b7babd…...

最后一个单词的长度
题目详情: 解题思路: 用两个变量分别存储当前值和上次值,就可保证当前移动时记录字符个数,当遇到空格时,这次值保存到上次值,并清空。 代码解析: /* 最后一个单词的长度 */ #include <st…...

2024-11-19 kron积
若A[a11 a12; a21 a22]; B[b11 b12; b21 b22]; 则C[a11*b11 a12*b11 a21*b11 a22*b11; a11*b12 a12*b12 a21*b12 a22*b12; a11*b21 a12*b21 a21*b21 a22*b21; a11*b22 a12*b22 a21*b22 a22*b22] 用MATLAB实现 方法1: A [a11 a12; a21 a22]; B [b11 b12; b21 b22]…...

Redis ⽀持哪⼏种数据类型?适⽤场景,底层结构
目录 Redis 数据类型 一、String(字符串) 二、Hash(哈希) 三、List(列表) 四、Set(集合) 五、ZSet(sorted set:有序集合) 六、BitMap 七、HyperLogLog 八、GEO …...

树莓派2 安装raspberry os 并修改成固定ip
安装 安装raspberry os 没啥说的,到树莓派官网,下载制作启动映像盘的软件: https://www.raspberrypi.com/software/ 下载后,直接安装该软件,然后运行,选择好开发板的型号和操作系统型号,按照…...

11月第3周AI资讯
阅读时间:3-4min 更新时间:2024.9.9-2024.9.13 目录 DIAMOND:扩散模型在世界构建中的应用 阿里云推出Qwen2.5-Turbo:高效长文本处理,性价比卓越 微软:AI已实现几乎无限的记忆 Comfyui_Object_Migration一致性换衣模型 DeepSeek发布R1-Lite-Preview:推理AI竞争愈发…...

一次封装,解放双手:Requests如何实现0入侵请求与响应的智能加解密
引言 之前写了 Requests 自动重试的文章,突然想到,之前还用到过 Requests 自动加解密请求的逻辑,分享一下。之前在做逆向的时候,发现一般医院的小程序请求会这么玩,请求数据可能加密也可能不加密,但是返回…...

Notepad++--在开头快速添加行号
原文网址:Notepad--在开头快速添加行号_IT利刃出鞘的博客-CSDN博客 简介 本文介绍Notepad怎样在开头快速添加行号。 需求 原文件 想要的效果 方法 1.添加点号 Alt鼠标左键,从首行选中首列下拉,选中需要添加序号的所有行的首列ÿ…...

Python和MATLAB示例临床因素分析
🌵Python片段 为了演示临床因素的分析,让我们模拟一个数据集并执行一些基本的统计和机器学习分析。我们将重点关注以下步骤: 模拟数据集:创建具有年龄、性别、BMI、吸烟状况和疾病结果等特征的临床数据。描述性统计:…...

嵌入式硬件实战基础篇(二)-稳定输出3.3V的太阳能电池-无限充放电
引言:本内容主要用作于学习巩固嵌入式硬件内容知识,用于想提升下述能力,针对学习稳压芯片和电容以及电池之间的运用,对于硬件PCB以及原理图的练习和前面硬件篇的实际运用;太阳能是一种清洁、可再生的能源,广…...

【数据结构】树——链式存储二叉树的基础
写在前面 书接上文:【数据结构】树——顺序存储二叉树 本篇笔记主要讲解链式存储二叉树的主要思想、如何访问每个结点、结点之间的关联、如何递归查找每个结点,为后续更高级的树形结构打下基础。不了解树的小伙伴可以查看上文 文章目录 写在前面 一、链…...

STM32-- keil常见报错与解决办法
调试问题 1. keil在线调试需要点击好几次运行才可以运行,要是直接下载程序直接就不运行。 解决:target里面的use microlib要勾选,因为使用了printf。 keil在线调试STM32,点三次运行才能跑到main的问题解决。 keil在线调试STM32…...

【大数据学习 | Spark-Core】RDD的概念与Spark任务的执行流程
1. RDD的设计背景 在实际应用中,存在许多迭代式计算,这些应用场景的共同之处是,不同计算阶段之间会重用中间结果,即一个阶段的输出结果会作为下一个阶段的输入。但是,目前的MapReduce框架都是把中间结果写入到HDFS中&…...

一文读懂埋阻埋容工艺
PCB 埋阻埋容工艺是一种在 PCB 板内部埋入电阻和电容的工艺。通常情况下, PCB 上电阻和电容都是通过贴片技术直接焊接在板面上的,而埋阻埋容工艺则将电 阻和电容嵌入到 PCB 板的内部层中,这种印制电路板,其自下而上依次包括第一介电 层,隐埋电…...

mysql 数据表导出为 markdown(附 go 语言 gorm 的实际使用)
前言 通常业务系统开发中,数据库的设计与维护是至关重要的环节。而数据库的文档化则是确保团队成员之间有效沟通、快速理解系统架构的基础。 但目前数据文档都是手动写的,耗时费力,由于当前项目使用的是 mysql 作为存储引擎,找找…...

本地云存储 MinIO 中修改用户密码
本地云存储 MinIO 中修改用户密码 MinIO 中修改用户密码前提条件步骤 1:安装 MinIO Client对于 Linux/macOS:对于 Windows: 步骤 2:配置 MinIO Client步骤 3:查看现有用户步骤 4:修改用户密码步骤 5&#x…...

go项目中比较好的实践方案
工作两年来,我并未遇到太大的挑战,也没有特别值得夸耀的项目。尽管如此,在日常的杂项工作中,我积累了不少心得,许多实践方法也在思考中逐渐得到优化。因此,我在这里记录下这些心得。 转发与封装 这个需求…...

回溯法基础入门解析
回溯法 前 言 回溯法也可以叫做回溯搜索法,它是一种搜索的方式。回溯是递归的副产品,只要有递归就会有回溯。回溯法,一般可以解决如下几种问题: 组合问题:N个数里面按一定规则找出k个数的集合切割问题:一…...

计算机网络-VPN虚拟专用网络概述
前面我们学习了在企业内部的二层交换机网络、三层路由网络包括静态路由、OSPF、IS-IS、NAT等,现在开始学习下VPN(Virtual Private Network,虚拟专用网络),其实VPN可能很多人听到第一反应就是梯子,但是其实这…...

信创时代的数据库之路:2024 Top10 国产数据库迁移与同步指南
数据库一直是企业数字化和创新的重要基础设施之一。从传统的关系型数据库到非关系型数据库、分析型数据库,再到云数据库和多模数据库,这一领域仍在持续变革中,各种新型数据库产品涌现,数据管理的能力和应用场景也由此得到了扩展。…...

自制游戏:监狱逃亡
第一个游戏,不喜勿喷: #include<bits/stdc.h> #include<windows.h> using namespace std; int xz; int ruond_1(int n){if(xz1){printf("撬开了,但站在你面前的是俄罗斯内务部特种部队的奥摩大帝,你被九把加特…...

小雪时节,阴盛阳衰,注意禁忌
宋张嵲《小雪作》 霜风一夜落寒林,莽苍云烟结岁阴。 把镜渐无勋业念,爱山唯驻隐沦心。 冰花散落衡门静,黄叶飘零一迳深。 世乱身穷无可奈,强将悲慨事微吟。 网络图片:小雪时节 笔者禁不住喟然而叹:“冰…...

CPU性能优化--微操作
x86 架构处理器吧复杂的CISC指令转为简单的RISC微操作。这样做最大的优势是微操作可以乱序执行,一条简单的相加指令--比如ADD,EAX, EBX,只产生一个微操作,而很多复杂指令--比如ADD, EAX 可能会产生两个微操作,一个将数…...

工厂模式
主要解决对象的创建问题 首先是简单工厂 只有一个工厂类,每次有新的产品就需要修改里面接口的内容,违反了封闭原则 //1、定义抽象产品类 class AbstractCar { public:AbstractCar() default;virtual ~AbstractCar() default;virtual void showName(…...

嵌入式系统与OpenCV
目录 一、OpenCV 简介 二、嵌入式 OpenCV 的安装方法 1. Ubuntu 系统下的安装 2. 嵌入式 ARM 系统中的安装 3. Windows10 和树莓派系统下的安装 三、嵌入式 OpenCV 的性能优化 1. 介绍嵌入式平台上对 OpenCV 进行优化的必要性。 2. 利用嵌入式开发工具,如优…...

编程之路,从0开始:动态内存笔试题分析
Hello大家好,很高兴我们又见面啦! 给生活添点passion,开始今天的编程之路。 今天我们来看几个经典的动态内存笔试题。 1、题目1 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> void GetMemory(char* …...