网站首页 > 技术文章 正文
视图: view
虚拟的表格,不会占用磁盘空间,是一个sql语句运行的结果。
创建的语法:
create view 视图名字 as select 查询语句;
create view sal3 as
select ename,sal,deptno from
(select a.*,rownum r from
(select * from emp_4 order by sal desc) a) b
where r<=3;
select * from sal3;
所以 sal3 就是上面的那个select语句。
视图的优点和缺点:
1.可以将很长的sql语句变成一个视图的名字,来简化的日常的sql
2.使用视图进行表格数据的传递,添加with read only防止别人对表格数据做修改
3.使用视图传递数据,可以隐藏一些敏感字段
4.视图可以节省服务器的网络流量
视图的查询,可能会导致句子写起来很简单,但是内部的逻辑非常的复杂,如果这个句子运行速度很慢,没有办法去对这个数据进行优化。
物化视图: materialized view
也叫做 快照表,保存某个表格在某个时间点的数据,并且可以在当前的物化视图上去设置表格数据更新的规则。
刷新表格数据的方法:
complete 完全更新
fast 快速更新
force 默认的更新方式,相当于fast
1.实时更新的物化视图 on commit
create materialized view 物化视图名字
refresh complete|fast on commit
as
select 查询语句;
create materialized view mv_emp
refresh complete on commit
as
select deptno,sum(sal) s from emp_test group by deptno;
快速更新,要求表格要有主键,要有实体化日志信息,查询结果要包含主键字段,不能做复杂的计算和查询。
create materialized view mv_emp2
refresh fast on commit
as
select empno,sal from emp_test;
alter table emp_test add constraints pk_no primary key (empno);
解决方法,给原表添加一个实体化日志:
create materialized view log on emp_test;
2.定时更新的物化视图 on demand
create materialized view 物化视图名字
refresh complete|fast on demand
start with 开始计时的时间点 next 更新数据的时间点
as
select 查询语句;
create materialized view mv_emp3
refresh complete on demand
start with sysdate next trunc(sysdate+1,'dd')+10/24
as
select deptno,avg(sal) from emp_test group by deptno;
视图和物化视图的区别?
1.视图是虚拟的,物化视图是真实的表格,会占用磁盘空间
2.如果原表的数据查询比较慢,视图的查询也会比较慢,物化视图是重新保存的数据,快慢是根据当前物化视图的数据量来决定的
3.可以给物化视图创建索引加快它的查询速度
4.视图是跟着原表一起进行数据变更的,物化视图有实时更新和定时更新两种方法
手动刷新物化视图的表格:
begin
dbms_mview.refresh('大写的物化视图名字', '大写的刷新的方法');
end;
begin
dbms_mview.refresh('MV_EMP3','COMPLETE');
end;
猜你喜欢
- 2024-10-21 Oracle和富士通合作推广企业云计算
- 2024-10-21 Oracle OAC系列:在数据集中创建计算的数据元素
- 2024-10-21 Oracle发布面向开发者的无服务器计算平台
- 2024-10-21 一次搞定各种数据库 SQL 执行计划 | 原力计划
- 2024-10-21 一次搞定各种数据库SQL执行计划 数据库执行计划怎么看
- 2024-10-21 Oracle推出Compute Cloud@Customer,可在任何地方提供OCI计算服务
- 2024-10-21 Oracle P6培训系列:12进度计算 oracle进程数
- 2024-10-21 ORACLE 体系 - 8 简要描述oracle的体系结构
- 2024-10-21 Oracle统计信息中在CBO模式下用于计算cost的参数之---聚簇因子
- 2024-10-21 怎么简单实现同比、环比计算的N种姿势?
你 发表评论:
欢迎- 06-24发现一款开源宝藏级工作流低代码快速开发平台
- 06-24程序员危险了,这是一个 无代码平台+AI+code做项目的案例
- 06-24一款全新的工作流,低代码快速开发平台
- 06-24如何用好AI,改造自己的设计工作流?
- 06-24濮阳网站开发(濮阳网站建设)
- 06-24AI 如何重塑前端开发,我们该如何适应
- 06-24应届生靠这个Java简历模板拿下了5个offer
- 06-24服务端性能测试实战3-性能测试脚本开发
- 566℃Oracle分析函数之Lag和Lead()使用
- 566℃几个Oracle空值处理函数 oracle处理null值的函数
- 550℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 545℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 543℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 536℃【数据统计分析】详解Oracle分组函数之CUBE
- 526℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 519℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)