转自
普通视图和物化视图的区别,
物化视图简单语法
创建物化视图:
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)的信息转换为物理数据存储,然后提供不同的策略:定时刷还是及时刷、增量刷还是全局刷等等可以根据实际情况进行选择,总之你差的是表,不是视图。
分享到:
相关推荐
首先,创建物化视图的基本语法如下: ```sql CREATE MATERIALIZED VIEW schema.name PCTFREE PCTUSED TABLESPACE tablespace_name BUILD IMMEDIATE|DEFERRED ENABLE|DISABLE QUERY REWRITE REFRESH |FAST|...
相比普通视图,物化视图可以提供更好的性能,因为普通视图是虚拟表,任何对视图的查询实际上都是转换为对 SQL 语句的查询,性能并没有实际上提高。 在 Vastbase G100 中,物化视图可以分为全量物化视图和增量物化...
Doris 物化视图和索引的典型应用案例 Doris 是一个开源的分布式分析型数据库,旨在帮助用户快速处理海量数据,提供了物化视图和索引等功能,以提高查询性能和数据的一致性。下面将详细介绍 Doris 的物化视图和索引...
oralce创建物化视图,基本语法,基本操作
物化视图操作简单,支持增量刷新及全量刷新,可以支持复杂的表连接、聚合函数等操作,为数据的加工创建了便捷条件,提高了查询效率,减少了服务器消耗资源。 本文主要研究 Oracle 物化视图增量刷新的应用,揭示了...
在本实验笔记中,主要探讨了物化视图(Materialized Views)这一重要的数据库特性,它是数据仓库和OLAP(在线分析处理)系统中的关键组件,用于提高查询性能和数据一致性。 物化视图是一种预先计算并存储的查询结果...
Oracle 视图详解 Oracle 视图(View)是一种逻辑表,基于一个或多个实际表...在 Oracle 中,还有一种视图:物化视图(MATERIALIZED VIEW),也称实体化视图,快照(8i 以前的说法),它是含有数据的,占用存储空间。
在Oracle中,还可以创建物化视图,这种视图会预先计算并存储结果,适用于需要定期更新且查询频繁的数据。物化视图的刷新可以是手动的,也可以设置为自动定时刷新,以保持数据的实时性。 总的来说,Oracle视图是...
本文将深入探讨这两种数据库系统的语法区别,以及它们在处理数据时的一些常见函数对比,旨在为数据库移植和编写跨平台代码提供指导。 一、SQL基本语法对比 1. 数据库创建: Oracle:使用CREATE DATABASE语句,例如...
因此,应合理设计视图,避免在复杂查询中使用视图,或者考虑物化视图(Materialized View)以提升性能。 总结,C#中使用视图配合Select查询语句,可以帮助我们更高效、安全地与数据库进行交互。通过ADO.NET或LINQ,...
创建视图的基本语法为使用`CREATE VIEW`语句,后跟视图的名称和视图定义的查询语句。例如: ```sql CREATE VIEW CityPairs AS SELECT P1.S#, P2.S# FROM CITY_PAIRS P1, CITY_PAIRS P2 WHERE P1 CITY ; ``` ...
2. **物化视图**:物化视图是存储了查询结果的物理表,常用于数据仓库和OLAP系统中,以提高查询性能,但使用并不广泛。 总之,Oracle视图作为数据访问的窗口,提供了数据安全、简化查询、权限管理和业务逻辑封装等...
视图可以分为三类:一般视图、内联视图和物化视图。一般视图是最常见的,它基于一个或多个表的列创建,允许用户以定制的方式查看数据。内联视图是临时的,仅在SQL查询中存在,不持久化存储,方便执行复杂的查询。...
- Oracle是甲骨文公司开发的关系数据库管理系统,它遵循SQL标准,但添加了许多自己的扩展和优化,如PL/SQL编程语言、物化视图、分区表等。 2. **数据类型的区别** - SQL标准定义了基本的数据类型,如INT、VARCHAR...
物化视图的主要作用在于提供数据的本地缓存,优化查询性能,尤其是在大数据量和复杂查询的场景下。 在复制场景中,物化视图允许我们在本地维护远程数据的只读副本。如果需要对这些本地数据进行修改,通常需要使用...
5. **物化视图**:预先计算并存储视图的结果,提高查询速度。 6. **触发器**:在特定数据库事件发生时自动执行的PL/SQL代码。 7. **数据库链接**:在不同Oracle实例间进行通信和数据共享。 8. **性能优化**:使用...
- **创建物化视图日志的基本语法**: ```sql CREATE MATERIALIZED VIEW LOG ON table_name WITH PRIMARY KEY, INCLUDING NEW VALUES; ``` 其中: - `table_name` 是要创建物化视图日志的表名。 - `WITH ...
Oracle数据库还支持一些高级视图功能,如物化视图(Materialized View),这种视图会预先计算并存储查询结果,以提高查询效率。如果王铮的视图是物化视图,他可能使用了以下语句: ```sql CREATE MATERIALIZED VIEW...