达梦数据库物化视图的简单使用

一、概念

      物化视图存储基表的数据,与视图不同的是,物化视图可以通过刷新来同步基表的数据。

二、创建、修改物化视图

      1.例子

    create materialized view mv_test build immediate refresh force on demand with rowid enable query rewrite
    as select * from person;

     2.参数说明

       BUILD IMMEDIATE| DEFERRED :immediate是立即填充数据,deferred是延迟填充数据;

       refresh:刷新数据,有三种方式刷新

          FAST 根据相关表上的数据更改记录进行增量刷新。普通 DML 操作生成的记录存在 于物化视图日志。使用FAST刷新之前,必须先建好物化视图日志。

          COMPLETE  通过执行物化视图的定义脚本进行完全刷新。 

          FORCE 默认选项。当快速刷新可用时采用快速刷新,否则采用完全刷新。 

      刷新时机:

       ON COMMIT:在基表上有提交操作时,进行刷新;

       ON DEMAND:在需要刷新时进行刷新,手动刷新;

       START WITH:指定首次刷新的时间;

       NEXT:刷新的周期时间。

     刷新选项:

     WITH PRIMARY KEY :基于主键,默认选项;

     WITH ROWID :基于单表

     QUERY REWRITE选项: ENABLE 允许物化视图用于查询改写;DISABLE 禁止物化视图用于查询改写。 

   3.修改物化视图

     ALTER MATERIALIZED VIEW 物化视图名;

   4.删除物化视图

     DROP MATERIALIZED VIEW 物化视图名;

   5.刷新物化视图

     REFRESH MATERIALIZED VIEW  物化视图名  [FAST| COMPLETE| FORCE];

三、创建、删除物化视图日志

     1.创建日志的原因:物化视图的快速刷新依赖于基表上的物化视图日志,物化视图日志记录了基表的变化信息。

     2.例子:create materialized view log on test with rowid  PURGE START WITH SYSDATE + 5   REPEAT INTERVAL '1' DAY;

     3.参数说明:

        PURGE: 指定每隔多长时间对物化视图日志中无用的记录进行一次清除。 分两种情况:

                       一是 IMMEDIATE 立即清除;二是 START WITH 定时清除。缺省是 PURGE IMMEDIATE。

     4.删除物化视图日志

       DROP MATERIALIZED VIEW  LOG ON [<模式名>.]<表名>  

 

 

 

 

你可能感兴趣的:(达梦数据库)