2015-05-19 92 views

回答

1

是的。物化视图日志可以支持尽可能多的物化视图。

支持多物化视图可能会导致日志大于它支持单个物化视图时的日志,尽管这可能不是非常重要,因为您的日志可能不会长时间存储数据。如果您正在将数据复制到远程数据库(根据定义,您无法使用快速刷新的物化视图),但如果其中一个远程实例化视图停止刷新或消失,而源自未知,则可能会有点棘手它可能会导致数据在日志中无限排队。但是,再次,这听起来不像你面临的情况。

3

绝对。

create table data_table as (
    select * 
    from dba_users 
); 

alter table data_table 
add constraint data_table_test_pk PRIMARY KEY (user_id); 

select * from data_table; 

所以现在我们有一个表,看起来像dba_usersPRIMARY KEY约束。

create materialized view log on data_table; 

create materialized view mat_view_one 
refresh fast on commit 
as 
select username, user_id 
from data_table 
; 

create materialized view mat_view_two 
refresh fast on commit 
as 
select user_id, username, account_status 
from data_table; 

这是我们的日志和2个视图创建成功。 SYS记录在测试表:

select * from mat_view_one 
where user_id=0; 

USERNAME       USER_ID 
------------------------------ ---------- 
SYS          0 

select * from mat_view_two 
where user_id=0; 

    USER_ID USERNAME      ACCOUNT_STATUS     
---------- ------------------------------ -------------------------------- 
     0 SYS       OPEN        

现在让我们更新SYS的名字,并承诺,看看我们的观点表明:

update data_table 
set username='WALTERWHITE' 
WHERE USER_ID=0 
; 
COMMIT; 
USERNAME       USER_ID 
------------------------------ ---------- 
WALTERWHITE        0 

    USER_ID USERNAME      ACCOUNT_STATUS     
---------- ------------------------------ -------------------------------- 
     0 WALTERWHITE     OPEN        

所以,是的,绝对的。 1物化视图日志可以作为你需要的许多物化视图,只要适当的约束被保留。