问题描述
实体化视图和计划作业之间的区别是什么?
专家解答
它们是独立的概念。
实例化视图存储查询结果。
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
也就是说,要使实例化视图与基表保持同步,您需要刷新它。如果你是按需做这件事,工作是个好方法。
实际上,您可以在实体化视图本身中指定刷新计划。这将在后台为您创建一个作业:
Oracle自动创建了一个作业(旧式) ,每小时刷新一次实体化视图。
如果将“start with”子句留空,则需要自己安排作业。
实例化视图存储查询结果。
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:22Oracle自动创建了一个作业(旧式) ,每小时刷新一次实体化视图。
如果将“start with”子句留空,则需要自己安排作业。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




