it would manifest itself as a "enq: JI - contention" lock wait. the JI lock is the materialized view refresh lock.
If you want to see it, you can use this script:
set echo on
drop table t;
drop materialized view mv;
drop sequence s;
create sequence s;
create table t ( x int primary key, y int );
create materialized view log on t with rowid including new values;
create materialized view mv
refresh fast on commit
as select count(*) from t;
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
!sqlplus / @test2 &
exec dbms_lock.sleep(2);
exec statspack.snap
exec dbms_alert.signal( 'WAIT_FOR_ME', '' );
commit;
exec dbms_lock.sleep(2);
exec statspack.snap
where test2.sql is:
exec dbms_alert.register( 'WAIT_FOR_ME' );
insert into t values ( s.nextval, 42 );
variable m varchar2(255)
variable s number
exec dbms_alert.waitone( 'WAIT_FOR_ME', :m, :s );
commit;
exit
You might expect to see something like this:
Top 5 Timed Events Avg %Total
~~~~~~~~~~~~~~~~~~ wait Call
Event Waits Time (s) (ms) Time
----------------------------------------- ------------ ----------- ------ ------
enq: JI - contention 14 3 186 26.4
PL/SQL lock timer 1 2 2076 21.1
CPU time 2 16.1
log file sync 17 2 92 15.9
buffer busy waits 17 0 22 3.8
-------------------------------------------------------------
the 14 JI waits are the 14 sqlplus's waiting for the first sqlplus to finish and then the 14th and so on...