oracle物化视图刷新时间

时间:2008-12-19 11:12:11

标签: oracle materialized-views

任何人都可以通过以下设置告诉我物化视图设置刷新的频率是多少?

按需启动强制执行sysdate + 0 NEXT(round(sysdate)+ 1/24)+ 1

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

4 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:4)

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

不,由于这个子句,这将在你创建它时运行一次:

START WITH sysdate+0 

就个人而言,我认为“+ 0”与现在一样无关紧要。

然后它将在明天凌晨1点运行,因为以下条款:

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

“1/24”部分计算的时间是1 am.m.,因为Oracle日期实际上存储为数字,小数部分表示小时,分钟等。语法很好。

答案 2 :(得分:1)

我不是100%确定它在物化视图调度语句中是合法的,但您可能想尝试(可以说)更直观的INTERVAL规范:

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

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

答案 3 :(得分:0)

我认为使用

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

更准确