转自
普通视图和物化视图的区别,
物化视图简单语法
创建物化视图:
create materialized view MV_except_pattern_orders
as
select * from v_except_pattern_orders
删除物化视图:
drop materialized view MV_except_pattern_orders
更新物化视图:
call DBMS_MVIEW.REFRESH('MV_EXCEPT_PATTERN_ORDERS','C');
DBMS_MVIEW.REFRESH
('countries_mv,regions_mv,hr.employees_mv','cf');
This statement performs a complete refresh of the countries_mv materialized view, a fast refresh of the regions_mv materialized view, and a default refresh of the hr.employees materialized view.
上述sql让物化视图countries_mv执行了全局刷新,regions_mv执行了增量刷新,hr.employees_mv执行了默认刷新
创建自动更新的物化视图:
create materialized view MV_except_pattern_orders
refresh Complete on demand
start with to_date('2010-01-01 13:20:51','YYYY-MM-DD HH24:MI:SS') next sysdate+1/(24*60)
as
select * from v_except_pattern_orders
问题:普通视图和物化视图的区别
普通视图和物化视图根本就不是一个东西,说区别都是硬拼到一起的,首先明白基本概念,普通视图是不存储任何数据的,他只有定义,在查询中是转换为对应的定义 SQL去查询,而物化视图是将数据转换为一个表,实际存储着数据,这样查询数据,就不用关联一大堆表,如果表很大的话,会在临时表空间内做大量的操作。
普通视图的三个特征:
1、是
简化设计,清晰编码的东西,他并不是提高性能的,他的存在只会降低性能(如一个视图7个表关联,另一个视图8个表,程序员不知道,觉得很方便,把两个视图关联再做一个视图,那就惨了),他的存在未了在设计上的方便性
2、其次,是
安全,在授权给其他用户或者查看角度,多个表关联只允许查看,不允许修改,单表也可以同WITH READ ONLY来控制,当然有些项目基于视图做面向对象的开发,即在视图上去做INSTAND OF触发器,就我个人而言是不站同的,虽然开发上方便,但是未必是好事。
3、
从不同的角度看不同的维度,视图可以划分维度和权限,并使多个维度的综合,也就是你要什么就可以从不同的角度看,而表是一个实体的而已,一般维度较少(如:人员表和身份表关联,从人员表可以查看人员的维度统计,从身份看,可以看不同种类的身份有那些人或者多少人),其次另一个如系统视图USER_TABLE、TAB、 USER_OBJECTS这些视图,不同的用户下看到的肯定是不一样的,看的是自己的东西。
物化视图呢,用于OLAP系统中,当然部分 OLTP系统的小部分功能未了提高性能会借鉴一点点,因为表关联的开销很大,所以在开发中很多人就像把这个代价交给定期转存来完成,ORACLE当然也提供了这个功能,就是将视图(或者一个大SQL)的信息转换为物理数据存储,然后提供不同的策略:定时刷还是及时刷、增量刷还是全局刷等等可以根据实际情况进行选择,总之你差的是表,不是视图。
分享到:
相关推荐
oralce创建物化视图,基本语法,基本操作
视图 … 实体类型前缀定义 各数据库实体类型前缀定义如下表所示: 表 1 实体类型前缀定义 实体类型 实体类型前缀 表 T 分区 TP 主键 PK 外键 FK Check约束 CK 普通视图 V 物化视图 MV 索引 IX 函数 FN 存储过程 SP ...
视图是虚表,在数据库中只存储视图定义(物化视图除外),通过视图可以查询、更新基本表中的数据;索引主要用于提高存取效率。通过本次实验,可以掌握基本表、视图、索引在数据库中的基本管理方法。 实验要求 熟悉...
第24章 使用物化视图 第25章 使用Oracle Text进行文本搜索 第26章 使用外部表 第27章 使用回闪查询 第28章 回闪:表和数据库 第Ⅳ部分 Pl/SQL 第29章 PL/SQL简介 第30章 触发器 第31章 过程、函数与程序包 第32章 ...
-使用SQL在流上定义实时,增量更新的物化视图 -连续查询,可将增量结果实时推送到客户端 -按需查询物化视图,非常类似于传统数据库 -完全从ksqlDB内部与任何数据源或接收器集成 组合这些强大的原语,使您能够仅使用...
第26章 使用物化视图 第27章 使用oracle text 进行文本搜索 第28章 使用外部表 第29章 使用闪回查询 第30章 闪回:表和数据库 第31章 sql 重放 第ⅳ部分 pl/sql 第32章 pl/sql 简介 第33章 应用程序...
第26章 使用物化视图 第27章 使用oracle text 进行文本搜索 第28章 使用外部表 第29章 使用闪回查询 第30章 闪回:表和数据库 第31章 sql 重放 第ⅳ部分 pl/sql 第32章 pl/sql 简介 第33章 应用程序...
第26章 使用物化视图 第27章 使用oracle text 进行文本搜索 第28章 使用外部表 第29章 使用闪回查询 第30章 闪回:表和数据库 第31章 sql 重放 第ⅳ部分 pl/sql 第32章 pl/sql 简介 第33章 应用程序...
第26章 使用物化视图 第27章 使用Oracle Text进行文本搜索 第28章 使用外部表 第29章 使用闪回查询 第30章 闪问:表和数据 第31章 SQL重放 第Ⅳ部分 PL/SQL 第32章 PL/SQL简介 第33章 应用程序在线升级 第34章 ...
第26章 使用物化视图 第27章 使用Oracle Text进行文本搜索 第28章 使用外部表 第29章 使用闪回查询 第30章 闪问:表和数据 第31章 SQL重放 第Ⅳ部分 PL/SQL 第32章 PL/SQL简介 第33章 应用程序在线升级 第34章 ...
10.10 索引(物化)视图 10.11 本章小结 10.12 练习 第11章 编写脚本和批处理 11.1 脚本的基础知识 11.1.1 USE语句 11.1.2 声明变量 11.1.3 使用@@IDENTITY 11.1.4 使用@@ROWCOUNT 11.2 批处理 11.2.1 批处理中的错误...
oracle建议用户自己设计数据库管理和安全的权限规划,而不要简单的使用这些预定角色。将来的版本中这些角色可能不会作为预定义角色。 DELETE_CATALOG_ROLE, EXECUTE_CATALOG_ROLE,SELECT_CATALOG_ROLE这些角色...
10.10 索引(物化)视图 10.11 本章小结 10.12 练习 第11章 编写脚本和批处理 11.1 脚本的基础知识 11.1.1 USE语句 11.1.2 声明变量 11.1.3 使用@@IDENTITY 11.1.4 使用@@ROWCOUNT 11.2 批处理 11.2.1 批处理中的错误...
10.10 索引(物化)视图 10.11 本章小结 10.12 练习 第11章 编写脚本和批处理 11.1 脚本的基础知识 11.1.1 USE语句 11.1.2 声明变量 11.1.3 使用@@IDENTITY 11.1.4 使用@@ROWCOUNT 11.2 批处理 11.2.1 批处理中的错误...
毫无保留的讲授,共31部分,内容包括体系结构、特有SQL语法、SQL语法深入分析、分区与索引、视图,触发器,函数,存储过程,游标等技术的使用、大对象存取技巧、数据备份与移植、物化视图。视频教程配套PPT。
8.1 回顾视图语法 8.2 更复杂的视图 8.3 使用T-SQL编辑视图 8.4 删除视图 8.5 审核:显示现有代码 8.6 保护代码:加密视图 8.7 关于模式绑定 8.8 使用VIEW METADATA使自己的视图看起来像一个...
8.1 回顾视图语法 8.2 更复杂的视图 8.3 使用T-SQL编辑视图 8.4 删除视图 8.5 审核:显示现有代码 8.6 保护代码:加密视图 8.7 关于模式绑定 8.8 使用VIEW METADATA使自己的视图看起来像一个...
8.1 回顾视图语法 8.2 更复杂的视图 8.3 使用T-SQL编辑视图 8.4 删除视图 8.5 审核:显示现有代码 8.6 保护代码:加密视图 8.7 关于模式绑定 8.8 使用VIEW METADATA使自己的视图看起来像一个...