О работе с материализованными представлениями  
  Содержание  


Настоящие материалы являются авторскими, права автора защищены Законами РФ и международными соглашениями. Для использования настоящих материалов вам необходимо ознакомиться и полностью принять лицензионное соглашение. В случае, если вы не принимаете настоящее лицензионное соглашение полностью, вы не имеете права пользоваться настоящими материалами


Ниже в заметках представлены типичные команды для работы с материализованными представлениями

# табличка источник
create table bel_testmv01 (f1 number) ;
insert into bel_testmv01 values (2) ;
insert into bel_testmv01 values (4) ;
insert into bel_testmv01 values (7) ;

# создание простой матвьюхи без журнала
DROP MATERIALIZED VIEW bel_mv01 ;
CREATE MATERIALIZED VIEW bel_mv01 REFRESH COMPLETE WITH ROWID START WITH SYSDATE NEXT SYSDATE + 1/24/60 AS SELECT * FROM bel_testmv01 ;
dbms_refresh.refresh('"TEST1"."BEL_MV01"');

# организация матвьюхи с быстрым обновлением изменений
create materialized view log on bel_testmv01 with rowid ;
DROP MATERIALIZED VIEW bel_mv01 ;
CREATE MATERIALIZED VIEW bel_mv01 REFRESH FAST WITH ROWID START WITH SYSDATE NEXT SYSDATE + 1/24/60 AS SELECT * FROM bel_testmv01 ;

# посмотреть параметры/определения матвьюх на приёмнике
col OWNER for a15
col NAME for a30
set long 10000
SELECT OWNER,MVIEW_NAME,QUERY FROM ALL_MVIEWS ;

# регистрация матвьюхи на источнике
DBMS_MVIEW.REGISTER_MVIEW ('OWNER','NAME','MVIEW_SITE', ID_NUMBER,DBMS_MVIEW.REG_ROWID_MVIEW + 
    DBMS_MVIEW.REG_PRIMARY_KEY_MVIEW + DBMS_MVIEW.REG_FAST_REFRESHABLE_MVIEW,'QUERY_TEXT',DBMS_MVIEW.REG_V8_SNAPSHOT) ;

# отображение зарегистрированных матвьюх
set linesize 300 pagesize 4000
col OWNER for a15
col NAME for a30
col MVIEW_SITE for a15
col QUERY_TXT for a50
col REFRESH_METHOD for a10
col VERSION for a15
col QUERY_TXT for a40
select * from DBA_REGISTERED_MVIEWS ;

# посмотреть настройки журналов
select MASTER,ROWIDS,PRIMARY_KEY from ALL_MVIEW_LOGS ;

# отображение зарегистрированных матвьюх и команд разрегистрации
select OWNER,NAME,MVIEW_SITE from DBA_REGISTERED_MVIEWS ;
select 'exec DBMS_MVIEW.UNREGISTER_MVIEW('''||OWNER||''','''||NAME||''','''||MVIEW_SITE||''') ;' from DBA_REGISTERED_MVIEWS ;
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
col OWNER for a30
col NAME for a30
col MASTER_OWNER for a30
col MASTER for a30
select * from ALL_MVIEW_REFRESH_TIMES ;

# организация матвьюхи с быстрым обновлением изменений на основе первичного ключа
ALTER TABLE bel_testmv01 ADD (f2 NUMBER) ;
ALTER TABLE bel_testmv01 ADD PRIMARY KEY (f2) ;
# удаляем прежний журнал матвьюхи с таким именем и создам новый на основе первичного ключа
DROP MATERIALIZED VIEW LOG ON bel_testmv01 ;
CREATE MATERIALIZED VIEW LOG ON bel_testmv01 WITH PRIMARY KEY, ROWID;

# варианты обновления матвьюхи
ALTER MATERIALIZED VIEW bel_mv01 REFRESH COMPLETE ;
ALTER MATERIALIZED VIEW bel_mv01 REFRESH FAST ;

Белонин С.С.
март 2010 г., Москва

(даты последующих модификаций не фиксируются)


     
   
   
    Нравится      

(C) Белонин С.С., 2000-2018. Дата последней модификации страницы:2018-01-09 13:25:41