I'm trying to figure out the meaning of 25/24
in this REFRESH parameter of an Oracle materialized view found on a repository:REFRESH FORCE ON DEMAND START WITH sysdate+0 NEXT trunc(SYSDATE) + 25/24
I'm trying to find the correct refresh scheduling of this Oracle materialized view: 1/24 means "every one hour' but I'm not sure about the meaning of 25/24 and I couldn't find the correct answer so far...
Can anyone give an help? Thanks in advance.
Marco
2条答案
按热度按时间3qpi33ja1#
That's tomorrow, 1 hour after midnight:
trunc
"removes" time component fromsysdate
(sets it to midnight) and then adds 25 hours to it.ccgok5k52#
来自
CREATE MATERIALIZED VIEW
文档条款
指定用于计算自动刷新间隔的日期时间表达式。
START WITH
和NEXT
值都必须计算为将来的某个时间。如果省略START WITH
值,则数据库通过计算与实体化视图的创建时间相关的NEXT
表达式来确定第一次自动刷新的时间。如果指定START WITH
值但省略NEXT
值,则数据库只会重新整理具体化视观表一次。如果您同时省略START WITH
和NEXT
值,或完全省略create_mv_refresh
,则数据库不会自动重新整理具体化视观表。您的陈述:
实际上是每X小时刷新一次,其中X是现在的时间(
SYSDATE + 0
)与明天01:00的时间差(TRUNC(SYSDATE)
给出今天的午夜,然后+25/24
加上25小时)。因此,如果您在午夜执行CREATE MATERIALIZED VIEW
语句,则它将每25小时刷新一次,如果您在上午9点执行它,则它将每16小时刷新一次,等等。如果您希望每25小时运行一次,则可以删除
TRUNC
:或者,等效地,使用
INTERVAL
文字而不是算术: