`
desert3
  • 浏览: 2160379 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

普通视图和物化视图区别,物化视图简单语法(转)

阅读更多
转自普通视图和物化视图的区别物化视图简单语法

创建物化视图:
 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)的信息转换为物理数据存储,然后提供不同的策略:定时刷还是及时刷、增量刷还是全局刷等等可以根据实际情况进行选择,总之你差的是表,不是视图。
分享到:
评论

相关推荐

    Oracle物化视图应用详解

    首先,创建物化视图的基本语法如下: ```sql CREATE MATERIALIZED VIEW schema.name PCTFREE PCTUSED TABLESPACE tablespace_name BUILD IMMEDIATE|DEFERRED ENABLE|DISABLE QUERY REWRITE REFRESH |FAST|...

    数据库中的物化视图的使用保姆级

    相比普通视图,物化视图可以提供更好的性能,因为普通视图是虚拟表,任何对视图的查询实际上都是转换为对 SQL 语句的查询,性能并没有实际上提高。 在 Vastbase G100 中,物化视图可以分为全量物化视图和增量物化...

    1-5+Doris物化视图、索引的典型应用案例.pdf

    Doris 物化视图和索引的典型应用案例 Doris 是一个开源的分布式分析型数据库,旨在帮助用户快速处理海量数据,提供了物化视图和索引等功能,以提高查询性能和数据的一致性。下面将详细介绍 Doris 的物化视图和索引...

    oralce创建物化视图

    oralce创建物化视图,基本语法,基本操作

    Oracle物化视图增量刷新的应用研究.pdf

    物化视图操作简单,支持增量刷新及全量刷新,可以支持复杂的表连接、聚合函数等操作,为数据的加工创建了便捷条件,提高了查询效率,减少了服务器消耗资源。 本文主要研究 Oracle 物化视图增量刷新的应用,揭示了...

    OCM考试实验笔记之一_物化视图.pdf

    在本实验笔记中,主要探讨了物化视图(Materialized Views)这一重要的数据库特性,它是数据仓库和OLAP(在线分析处理)系统中的关键组件,用于提高查询性能和数据一致性。 物化视图是一种预先计算并存储的查询结果...

    oracle视图详解

    Oracle 视图详解 Oracle 视图(View)是一种逻辑表,基于一个或多个实际表...在 Oracle 中,还有一种视图:物化视图(MATERIALIZED VIEW),也称实体化视图,快照(8i 以前的说法),它是含有数据的,占用存储空间。

    自己总结的数据库oracle视图用法

    在Oracle中,还可以创建物化视图,这种视图会预先计算并存储结果,适用于需要定期更新且查询频繁的数据。物化视图的刷新可以是手动的,也可以设置为自动定时刷新,以保持数据的实时性。 总的来说,Oracle视图是...

    oracle和SQL的语法区别

    本文将深入探讨这两种数据库系统的语法区别,以及它们在处理数据时的一些常见函数对比,旨在为数据库移植和编写跨平台代码提供指导。 一、SQL基本语法对比 1. 数据库创建: Oracle:使用CREATE DATABASE语句,例如...

    C#演示视图在Select查询语句中的应用

    因此,应合理设计视图,避免在复杂查询中使用视图,或者考虑物化视图(Materialized View)以提升性能。 总结,C#中使用视图配合Select查询语句,可以帮助我们更高效、安全地与数据库进行交互。通过ADO.NET或LINQ,...

    09第9 章视图.pdf

    创建视图的基本语法为使用`CREATE VIEW`语句,后跟视图的名称和视图定义的查询语句。例如: ```sql CREATE VIEW CityPairs AS SELECT P1.S#, P2.S# FROM CITY_PAIRS P1, CITY_PAIRS P2 WHERE P1 CITY ; ``` ...

    19.Oracle视图1

    2. **物化视图**:物化视图是存储了查询结果的物理表,常用于数据仓库和OLAP系统中,以提高查询性能,但使用并不广泛。 总之,Oracle视图作为数据访问的窗口,提供了数据安全、简化查询、权限管理和业务逻辑封装等...

    ADBMS4.7-索引视图与分区.pptx

    视图可以分为三类:一般视图、内联视图和物化视图。一般视图是最常见的,它基于一个或多个表的列创建,允许用户以定制的方式查看数据。内联视图是临时的,仅在SQL查询中存在,不持久化存储,方便执行复杂的查询。...

    ORACLE和SQL语法区别归纳

    - Oracle是甲骨文公司开发的关系数据库管理系统,它遵循SQL标准,但添加了许多自己的扩展和优化,如PL/SQL编程语言、物化视图、分区表等。 2. **数据类型的区别** - SQL标准定义了基本的数据类型,如INT、VARCHAR...

    oracle view

    物化视图的主要作用在于提供数据的本地缓存,优化查询性能,尤其是在大数据量和复杂查询的场景下。 在复制场景中,物化视图允许我们在本地维护远程数据的只读副本。如果需要对这些本地数据进行修改,通常需要使用...

    Oracle语法指南.zip

    5. **物化视图**:预先计算并存储视图的结果,提高查询速度。 6. **触发器**:在特定数据库事件发生时自动执行的PL/SQL代码。 7. **数据库链接**:在不同Oracle实例间进行通信和数据共享。 8. **性能优化**:使用...

    oracle数据快照

    - **创建物化视图日志的基本语法**: ```sql CREATE MATERIALIZED VIEW LOG ON table_name WITH PRIMARY KEY, INCLUDING NEW VALUES; ``` 其中: - `table_name` 是要创建物化视图日志的表名。 - `WITH ...

    oracle_java.rar_oracle

    Oracle数据库还支持一些高级视图功能,如物化视图(Materialized View),这种视图会预先计算并存储查询结果,以提高查询效率。如果王铮的视图是物化视图,他可能使用了以下语句: ```sql CREATE MATERIALIZED VIEW...

Global site tag (gtag.js) - Google Analytics