假设我们正在开发一个Oracle视图,它提供了几个表的简单内连接,比如这个
CREATE VIEW V_ABC AS
SELECT SUM(TABLE_A.a+TABLE_B.b-TABLE_C.c), TABLE_A.a,TABLE_B.b,TABLE_C.c
FROM TABLE_A
join TABLE_B on TABLE_A.id = TABLE_B.fid
join TABLE_C on TABLE_B.id = TABLE_C.fid
GROUP BY TABLE_A.a,TABLE_B.b,TABLE_C.c;
如果TABLE_A
,TABLE_B
和TABLE_C
是总是会有大量频繁更新(每秒一次)的表,这些表也会影响视图。但是没有必要立即将视图V_ABC
与所有三个表同步,但只需要在用户查询视图V_ABC
时获取最新结果。
接下来是问题,Oracle中物化视图的更新方式和时间?
V_ABC
与最新结果同步吗?对于表现的关注提出了一个问题。让视图查询再次执行以响应来自任何表的任何更新是一个巨大的浪费,特别是当表格很大并经常CRUD
申请时。