【发布时间】:2017-09-05 07:36:14
【问题描述】:
我需要每 1 分钟刷新一次具体化视图,所以我使用了以下代码:
CREATE MATERIALIZED VIEW Any_Name
BUILD IMMEDIATE
REFRESH fast start with (sysdate) next (sysdate+1/1440) with rowid
ON DEMAND
AS
SELECT * FROM AnyTable@DB_Link;
我将把这段代码应用到 7 个很少更新的表中,但是当表更新时,物化视图快速刷新很重要。
每1分钟快速刷新一次物化视图有问题吗?
【问题讨论】:
-
它们不适合在提交时快速刷新吗?
-
不,它们是合适的。但我问的是即使它很快我也担心 1 分钟的间隔会在数据库中产生性能问题?
-
如果你 refresh on commit 那么你不需要每分钟刷新一次。您不会有这种开销,并且在更新的表和反映更改数据的 MV 之间不会有差距,这似乎是您首先要避免的。
-
@AlexPoole 我不能在提交时使用刷新,因为它只有在同一个数据库中的主表不是我的情况下才有效(检查这个link)
-
我不会将此添加为答案,因为您不太可能使用数据库的 12.2 版本。但请查看 12.2 中物化视图的
enable on query computation选项,了解将来如何回答这个问题。
标签: database oracle refresh materialized-views