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


Эти материалы являются объектом авторского права и защищены законами РФ и международными соглашениями о защите авторских прав. Перед использованием материалов вы обязаны принять условия лицензионного договора на использование этих материалов, или же вы не имеете права использовать настоящие материалы

Авторская площадка "Наши орбиты" состоит из ряда тематических подразделов, являющихся моими лабораторными дневниками, содержащими записи за разное, иногда продолжительно отличающееся, время. Эти материалы призваны рассказать о прошедшем опыте, они никого ни к чему не призывают и совершенно не обязательно могут быть применимы кем-то ещё. Это только лишь истории о прошлом


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

# табличка источник
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-2024. Дата последней модификации страницы:2019-12-04 00:43:28