暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle Mview与Job的区别

askTom 2016-03-08
250

问题描述

实体化视图和计划作业之间的区别是什么?

专家解答

它们是独立的概念。

实例化视图存储查询结果。

http://docs.oracle.com/cd/E11882_01/server.112/e40540/schemaob.htm#CNCPT411

作业在计划的时间运行进程。这可以使用“新样式”dbms_调度器:

http://docs.oracle.com/cd/E11882_01/server.112/e25494/schedover.htm#ADMIN033

或“旧式”dbms_作业:

http://docs.oracle.com/cd/E11882_01/server.112/e25494/appendix_a.htm#ADMIN11002

也就是说,要使实例化视图与基表保持同步,您需要刷新它。如果你是按需做这件事,工作是个好方法。

实际上,您可以在实体化视图本身中指定刷新计划。这将在后台为您创建一个作业:

create materialized view mva 
refresh on demand 
start with sysdate next sysdate + 1/24
as
  select * from a;
 
select what, interval, next_date from user_jobs;

WHAT
------------------------------------------------------------------------------------
INTERVAL
------------------------------------------------------------------------------------
NEXT_DATE
-----------------
dbms_refresh.refresh('"CHRIS"."MVA"');                                                                                                                          
sysdate + 1/24                                                                                                                                                  
08-MAR-2016 09:22


Oracle自动创建了一个作业(旧式) ,每小时刷新一次实体化视图。

如果将“start with”子句留空,则需要自己安排作业。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论