1.视图 view

  视图是使用select语句最终运行出来的一个结果,每次使用视图时都会运行视图创建时的select语句

  语法:create view 视图名称 as select语句

  优点:1 可以将复杂的sql存储起来,简化查询操作

        2 隐藏一些原表敏感信息,方便实现复杂的业务

        3 可以设置只读属性,只用于展示数据

  缺点:本身就是SQL查询语句,当进行多个视图连表查询时,会受到创建视图时查询语句的复杂程度而逻                      辑变得复杂,性能降低,并且无法优化

2.物化视图 materialized (快照表)

  物化视图本质是一张select语句的查询结果生成的表,是真实存在的表,但是不能进行dml(增,删,改)的操             作,其与创建原表的数据和结构完全一致,物化视图可以对表进行备份。

  物化视图不能dml操作,但是可以进行刷新(reflush)

  语法:create mterialized view 物化视图名字 refresh 更新方式 on 刷新方式 as select语句

  创建物化视图时原表需要有主键约束,并且先要创建物化视图日志

    创建日志:create materialized view log on 表名

  物化视图三种更新方式:

    1.complete:完全更新,更新时更新全部数据

    2.fast:部分更新,只跟随原表更新原表中更新的数据

    3.force:默认更新,fast更新

  物化视图的三种刷新方式:

    1.提交时更新:create mterialized view 物化视图名字 refresh 更新方式 on commit as select语句

    2.定时刷新:create mterialized view 物化视图名字 refresh 更新方式 on demand start with 开始更新                             时间 next 下一次更新时间 as select 语句

       3.不设置刷新方式的物化视图:create mterialized view 物化视图名字 as select语句

    不设置刷新方式的物化视图使用dbms_mview.refresh('物化视图名字','刷新方法')来刷新,需要放到                       begin ... end 的代码块中执行

3.视图和物化视图的区别:

  1.视图是一个select语句查询结果,本质是一个select语句,物化视图本质是一张不能修改的表格。

  2.视图在一定条件可以修改数据,会影响到原表中的数据,物化视图不可以

  3.视图数据随原表中数据变动,物化视图需要刷新才可以更新

  4.物化视图可以添加索引,优化查询速度

  

    

 

posted on 2022-11-27 17:22  银光短战棍  阅读(66)  评论(0编辑  收藏  举报