本来是要模拟latch: cache buffers chains事件,但由于12C中锁的机制有所变动,最终模拟成了cursor: pin S事件,先记录,后分析。
1,创建测试表和同义词
create table system.t73(id number,name varchar2(10),indate date) tablespace tp;
create public synonym t73 for system.t73;
2,批量写入数据
declare
i number;
v number;
n varchar2(10);
begin
for i in 1..100000 loop
v := mod(i,1000) +1;
n := 'kaka'||v;
insert into t73 values(i,n,sysdate);
commit;
end loop;
end;
3,在两个不同的会话执行如下过程
declare
n varchar2(40);
begin
for i in 1..1000000 loop
select name into n from t73 where id=0;
end loop;
end;
/
4,查看等待事件
SQL> select sid,event,p1raw,p2raw from v$session where wait_class <> 'Idle' order by event;
SID EVENT P1RAW P2RAW
---------- ------------------------------ ---------------- ----------------
259 SQL*Net message to client 0000000062657100 0000000000000001
19 cursor: pin S 00000000505D6F37 00
254 cursor: pin S 00000000505D6F37 0000001300000001