【问题标题】:Refresh Materialized View every minutes but only between particular time of day每分钟刷新一次实体化视图,但仅在一天中的特定时间之间
【发布时间】:2016-12-15 02:43:43
【问题描述】:

我有希望在上午 7 点到晚上 11 点之间每 15 分钟刷新一次的具体化视图

你能帮我解决同样的频率条款吗?

CREATE MATERIALIZED VIEW ABC
NOCOMPRESS LOGGING
BUILD IMMEDIATE
USING INDEX 
REFRESH COMPLETE ON DEMAND START WITH ----- NEXT -----
USING ENFORCED CONSTRAINTS DISABLE QUERY REWRITE
AS select * from PQR

最好的问候

【问题讨论】:

    标签: sql oracle11g oracle12c


    【解决方案1】:

    您还可以创建调度程序作业:

    BEGIN
      SYS.DBMS_SCHEDULER.CREATE_JOB
        (
           job_name        => 'DBAPER.MVW_TEST_REFRESH'
          ,start_date      => TO_TIMESTAMP_TZ('2011/09/02 00:00:00.000000 US/Central','yyyy/mm/dd hh24:mi:ss.ff tzr')
          ,repeat_interval => 'FREQ=DAILY;BYHOUR=6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22;BYMINUTE=0,5,10,15,20,25,30,35,40,45,50,55'
          ,end_date        => NULL
          ,job_class       => 'DEFAULT_JOB_CLASS'
          ,job_type        => 'PLSQL_BLOCK'
          ,job_action      => 'BEGIN 
                                DBMS_MVIEW.REFRESH(''ABC'',''C'');
                                END;'
          ,comments        => 'Job to refresh materialized view ABC.'
        );
    END;
    /
    

    这样您就有更多的配置选项,例如排除夜间或周末。

    【讨论】:

    • 谢谢,但如果可能的话,我正在寻找视图定义中的频率子句。
    • 频率范围是可能的,但很难在一个时间段之间进行限制。比如晚上 11 点之后不允许刷新..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 2021-02-17
    相关资源
    最近更新 更多