物化视图如何在Oracle中运行

时间:2014-04-29 14:25:57

标签: sql oracle view

假设我们正在开发一个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_ATABLE_BTABLE_C是总是会有大量频繁更新(每秒一次)的表,这些表也会影响视图。但是没有必要立即将视图V_ABC与所有三个表同步,但只需要在用户查询视图V_ABC时获取最新结果。

接下来是问题,Oracle中物化视图的更新方式和时间?

  1. 每次对任何连接表或
  2. 进行数据更新时,是否会立即进行同步
  3. 当只有用户查询视图时,我们可以自定义视图V_ABC与最新结果同步吗?
  4. 对于表现的关注提出了一个问题。让视图查询再次执行以响应来自任何表的任何更新是一个巨大的浪费,特别是当表格很大并经常CRUD申请时。

0 个答案:

没有答案