实体化视图( materialized view )

相对于普通的视图来说,实体化视图的不同之处在于实体化视图管理存储数据,占据数据库的物理空间。实体化视图的结果会保存在一个普通的数据表中,在对实体化视图进行查询的时候不再会对创建实体化视图的基表进行查询,而是直接查询实体化视图对应的结果表,然后通过定期的刷新机制来更新MView表中的数据。

[refresh [fast | complete | force]
         [on demand | commit]
         [start with date]
         [next date]
         [with {primary key | rowid}]
       ]    

ON COMMIT指出物化视图在对基表的DML操作提交的同时进行刷新。刷新的方法有四种:FAST、COMPLETE、FORCE和NEVE*。FAST刷新采用增量刷新,只刷新自上次刷新以后进行的修改。COMPLETE刷新对整个物化视图进行完全的刷新。如果选择FORCE方式,则Oracle在刷新时会去判断是否可以进行快速刷新,如果可以则采用FAST方式,否则采用COMPLETE的方式。NEVER指物化视图不进行任何刷新。默认值是FORCE ON DEMAND

1.创建的实体视图 不是自动刷新 而是需要手动去刷新

CREATE materialized VIEW "VB_table"

as select * from table;

 

exec dbms_mview.refresh( 'VB_table');

 

2.自动刷新视图

 主键物化视图
主键物化视图是默认的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在达梦数据库中创建一个实体化视图并设置为每年更新一次,可以按照以下步骤进行操作: 1. 首先,使用 SQL 语句创建您的实体化视图。例如,假设您要创建一个名为 "my_view" 的视图,可以执行以下语句: ```sql CREATE MATERIALIZED VIEW my_view AS SELECT * FROM your_table WHERE your_condition; ``` 在上述语句中,您需要将 "your_table" 替换为实际的表名,并根据需要添加筛选条件。 2. 接下来,使用 `DBMS_MVIEW` 包中的 `REFRESH` 过程设置实体化视图的刷新方式。执行以下语句: ```sql BEGIN DBMS_MVIEW.REFRESH('my_view', 'C'); END; / ``` 在上述语句中,'my_view' 是您创建的实体化视图的名称,'C' 表示完全刷新实体化视图。 3. 最后,使用 `DBMS_SCHEDULER` 包中的 `CREATE_JOB` 过程创建一个定时任务,以便每年自动执行实体化视图的刷新操作。执行以下语句: ```sql BEGIN DBMS_SCHEDULER.CREATE_JOB ( job_name => 'my_view_refresh', job_type => 'PLSQL_BLOCK', job_action => 'BEGIN DBMS_MVIEW.REFRESH(''my_view'', ''C''); END;', start_date => SYSDATE, repeat_interval => 'FREQ=YEARLY; INTERVAL=1', enabled => TRUE ); END; / ``` 在上述语句中,定时任务名称为 "my_view_refresh",执行的动作是刷新实体化视图 "my_view"。任务将从当前日期开始执行,并且每年重复一次。 完成上述步骤后,您的实体化视图将被创建,并且每年都会自动刷新一次。请注意,上述操作仅适用于达梦数据库。其他数据库系统可能具有不同的方法来实现实体化视图的定期更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值