2026-03-12 21:01:38
This commit is contained in:
70
materialized_views/mw01.txt
Normal file
70
materialized_views/mw01.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
create pluggable database NIHILUS admin user NIHILUS$OWNER identified by secret;
|
||||
alter pluggable database NIHILUS open;
|
||||
alter pluggable database NIHILUS save state;
|
||||
|
||||
orapwd file=orapwSITHPRD password="ad420e57a205c9a7d80d!"
|
||||
|
||||
alias NIHILUS='rlwrap sqlplus adm/"secret"@bakura:1521/NIHILUS as sysdba'
|
||||
|
||||
alter session set container=NIHILUS;
|
||||
|
||||
create user DEMO identified by secret;
|
||||
grant connect, resource to DEMO;
|
||||
grant create materialized view to DEMO;
|
||||
grant create view to DEMO;
|
||||
grant unlimited tablespace to DEMO;
|
||||
|
||||
alias DEMO='rlwrap sqlplus DEMO/"secret"@bakura:1521/NIHILUS'
|
||||
|
||||
create table DEMO as
|
||||
select 0 seq,current_timestamp now
|
||||
from
|
||||
xmltable('1 to 1000');
|
||||
|
||||
|
||||
-- infinite_update.sql
|
||||
whenever sqlerror exit failure
|
||||
begin
|
||||
loop
|
||||
update demo set seq=seq+1,now=current_timestamp where rownum=1;
|
||||
commit;
|
||||
dbms_session.sleep(1);
|
||||
end loop;
|
||||
end;
|
||||
/
|
||||
|
||||
|
||||
select max(seq),max(now) from DEMO.DEMO;
|
||||
create materialized view DEMOMV1 as select * from DEMO;
|
||||
create materialized view DEMOMV2 as select * from DEMO;
|
||||
|
||||
create view V as
|
||||
select 'DEMOMV1' source,seq,now from DEMOMV1
|
||||
union all
|
||||
select 'DEMOMV2' source,seq,now from DEMOMV2
|
||||
union all
|
||||
select 'DEMO' source,seq,now from DEMO;
|
||||
|
||||
set lines 256
|
||||
col maxseq for 999999999
|
||||
col maxnow for a50
|
||||
|
||||
select source,max(seq) maxseq,max(now) maxnow from V group by source;
|
||||
|
||||
|
||||
exec dbms_refresh.make('DEMO.DEMORGROUP', list=>'DEMOMV1,DEMOMV2', next_date=>null, interval=>'null');
|
||||
|
||||
exec dbms_refresh.refresh('DEMO.DEMORGROUP');
|
||||
|
||||
-- we can index and gather stats on materialized views
|
||||
create index IMV1 on DEMOMV1(seq);
|
||||
create index IMV2 on DEMOMV2(now);
|
||||
|
||||
exec dbms_stats.gather_table_stats(user,'DEMOMV1', method_opt=>'for all columns size SKEWONLY');
|
||||
exec dbms_stats.gather_table_stats(user,'DEMOMV2', method_opt=>'for all columns size AUTO');
|
||||
|
||||
alter table DEMO add constraint PK_DEMO primary key (NOW);
|
||||
|
||||
create materialized view log on DEMO.DEMO
|
||||
including new values;
|
||||
|
||||
Reference in New Issue
Block a user