代码之家  ›  专栏  ›  技术社区  ›  shaunf

Oracle物化视图刷新时间

  •  5
  • shaunf  · 技术社区  · 16 年前

    有谁能告诉我物化视图被设置为使用以下设置plz刷新的频率?

    按需刷新强制从sysdate+0 next(round(sysdate)+1/24)+1开始

    我想我每小时都读一次,但我不确定

    4 回复  |  直到 10 年前
        1
  •  7
  •   tuinstoel    16 年前
    SQL> alter session set nls_date_format = 'yyyy-mm-dd :hh24:mi:ss';
    
    Session changed.
    
    SQL> select sysdate from dual;
    
    SYSDATE
    --------------------
    2008-12-19 :12:18:28
    
    SQL> select (round(sysdate) + 1/24) + 1  from dual;
    
    (ROUND(SYSDATE)+1/24
    --------------------
    2008-12-21 :01:00:00
    
        2
  •  4
  •   Stew S    16 年前

    回答你的第一个问题(这会每小时运行一次吗?):

    不,因为这个子句,当您创建它时,它将运行一次:

    START WITH sysdate+0 
    

    我个人认为“+0”是无关的,就像现在一样。

    明天上午1点开始运行,原因如下:

    NEXT (round(sysdate) + 1/24) + 1
    

    “1/24”部分计算上午1点是什么时候,因为Oracle日期实际上存储为数字,小数部分表示小时、分钟等。语法很好。

        3
  •  1
  •   David Aldridge    16 年前

    我不能百分之百地肯定在物化视图调度语句中它是合法的,但是您可能希望尝试(可以说)更直观的间隔规范:

    round(sysdate) + interval '1 1' day to hour
    

    此处的其他示例: http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/sql_elements003.htm#SQLRF00221

        4
  •  0
  •   Nadi E Musleh    10 年前

    我想用

    NEXT (trunc(sysdate) + 1/24) + 1
    

    更准确些

    推荐文章