数据库版本:11.2.0.4.0

1.查出表TEST相关信息

select rowid,
dbms_rowid.rowid_row_number(rowid) rowid_rownum,

dbms_rowid.rowid_relative_fno(rowid) file_id,

dbms_rowid.rowid_block_number(rowid) block_id,test.* from test;

ROWID              ROWID_ROWNUM    FILE_ID   BLOCK_ID OBJECT_NAME  STATUS

------------------ ------------ ---------- ---------- ------------ -------

AAAFSJAAEAAAACkAAA            0      
    4        164 10           15

AAAFSJAAEAAAACkAAB            1        
  4        164 10           15


可以看到,TEST表的两条记录在同一文件的同一个BLOCK中。

2.写一个循环:

循环执行查询语句一百万次:
--查询164数据块的第一行

declare

aa varchar2(100);

begin

for i in 1..1000000 loop

select object_name into aa from test where
rowid='AAAFSJAAEAAAACkAAA';

end loop;

end;

/

循环更新查询语句200次  
  --查询164数据块的第二行

declare

begin

for i in 1..200 loop

update test set status=15 where
rowid='AAAFSJAAEAAAACkAAB';

end loop;

commit;

end;

/

3.打开两个会话,查出会话SID。--这里会话SID分别是30 35.

在30号会话执行循环查询:

BYS@ bys3>select sid from v$mystat where rownum=1;

       SID

----------

        30

节约篇幅,执行循环的语句就不贴了。

在35号会话执行循环更新语句:

BYS@ bys3>select sid from v$mystat where rownum=1;

       SID

----------

        35

节约篇幅,执行循环的语句就不贴了。

4.再打开一个会话,使用语句查询35 30号会话的等待事件

23:03:20 SYS@ bys3>select sid ,event,total_waits,total_timeouts,time_waited_micro from v$session_event  

23:03:21   2  where sid in(30,35);

SID EVENT                                    TOTAL_WAITS TOTAL_TIMEOUTS TIME_WAITED_MICRO

---------- ---------------------------------------- ----------- -------------- -----------------


        30 buffer busy waits                                  1              0               968             --------这里30号会话是读操作,35号会话是写操作,也就是30号会话的读被写阻塞。
        30 latch: In memory undo latch                        1              0               960

        30 resmgr:cpu quantum                                 3              0             33589

        30 SQL*Net message to client                         15              0               637

        30 SQL*Net message from client                       14              0         206010788

        35 Disk file operations I/O                           3              0               312

       
35 latch: cache buffers chains                        2              0              1174

        35 db file sequential read                           64              0              9065

        35 direct path read                                 100              0             53191

        35 SQL*Net message to client                         25              0               259

        35 SQL*Net message from client                       24              0         625117659

        35 SQL*Net break/reset to client                      4              0              1046

12 rows selected.

Elapsed: 00:00:00.02

23:03:22 SYS@ bys3>select sid ,event,total_waits,total_timeouts,time_waited_micro from v$session_event

23:03:30   2  where sid in(30,35) and event like '%buffer%';

SID EVENT                                    TOTAL_WAITS TOTAL_TIMEOUTS TIME_WAITED_MICRO

---------- ---------------------------------------- ----------- -------------- -----------------


        30 buffer busy waits                                  1              0               968
        35 latch: cache buffers chains                        2              0              1174

Elapsed: 00:00:00.03

查看等待事件截图:

模拟产生CBC LATCH与buffer busy wait等待事件的更多相关文章

  1. RAC性能分析 - gc buffer busy acquire 等待事件

    概述---------------------gc buffer busy是RAC数据库中常见的等待事件,11g开始gc buffer  busy分为gc buffer busy acquire和gc ...

  2. buffer cache —— buffer busy waits/read by other session

    oracle提供非常精确.有效的row level lock机制,多个用户同时修改数据时,为了保护数据,以块为单位挂起锁的情况不会发生.但这不太正确.以块为单位的锁虽然不存在,但正因为oracle I ...

  3. buffer busy wait

    什么是buffer busy wait? A session that reads or modifies a buffer in the SGA must first acquire the cac ...

  4. Latch free等待事件

    Latch free等待事件的三个参数:p1-latch的地址:p2-latch编号:p3-请求次数.从oracle10g起,latchfree不再包含所有的latch等待,有些latch等待可能表现 ...

  5. 读取模式下cbc latch的事件模拟(热块竞争和热链竞争)-P62

    文章目录 1. 背景 2. 过程 2.1 热块竞争 2.1.1 版本11.2.0.1.0 2.1.1.1 session 1(sid:34) 2.1.1.2 session 2(sid:35) 2.1 ...

  6. buffer busy waits

    Buffer busy waits 当会话想要访问缓冲区中的数据块,而该数据块正在被其他会话使用时将产生Buffer busy waits事件. 其他会话可能正从数据文件向缓冲器读取同样的数据块,或正 ...

  7. ORACLE CBC LATCH 检查

    ###############1.DB meet latch: cache buffers chains event from awr report ,check latch: cache buffe ...

  8. Oracle buffer cache与相关的latch等待事件

    buffer cache与相关的latch等待事件 1.buffer cache 2.latch:cache buffers lru chain 3.latch:cache buffers chain ...

  9. GC Buffer Busy Waits处理(转载)

    与单实例不同,在RAC环境中,由于多节点的原因,会因为节点间的资源争用产生GC类的等待,而这其中,GC Buffer Busy Waits又是最为常见的,从性能角度上说,RAC是把双刃剑,用的好,能够 ...

随机推荐

  1. MacBook外接显示器设置方法(新手入门贴)

    小屏幕的MacBook/MacBook Pro放在桌上长时间使用,眼睛比较累,而且,长时间低头看屏幕,易得颈椎病,绝对有损健康.配一台大屏幕的外置显示器不失为两全其美的好办法. 首先,得买一台中意的大 ...

  2. Javascript 运动基础 01

    JS运动基础  运动基础   让Div运动起来 速度——物体运动的快慢 运动中的Bug 不会停止 速度取某些值会无法停止 到达位置后再点击还会运动 重复点击速度加快   匀速运动 速度不变 <s ...

  3. cURL实现get、post请求

    1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的一些高级特性 ...

  4. Hibernate执行sql语句

    Hibernate执行sql语句:BasicServiceImpl basicServiceImpl = new BasicServiceImpl();String hql = "selec ...

  5. c# 数据库编程(利用DataSet 和 DataAdaper对象操作数据库--跨表操作)

    上篇文章我们介绍了如何利用DataSet 和 DataAdaper对象来对单张表进行操作. 本文我们将介绍如何进行跨表操作. 我们通过具体例子方式进行演示,例子涉及到三张表. 1)student表(学 ...

  6. java 异常 之 实战篇(trows 和 try catch Dead Code)

    一:throws 和 trycatch 差别 (1)比如.publicFileWriter(String fileName) throws IOException{} 我在mian中创建一个FileW ...

  7. java web从零单排第二十二期《hibernate》代码分析之查看,删除用户信息

    前两期的内容不知道大家理解的怎么样,我并没有详细的去解释代码的意思,如果你已经自己都钻研明白了,那最好过,但还是一知半解的话,接下来我会仔细分析代码. 1.register.jsp:这部分代码只是简单 ...

  8. BZOJ 3505: [Cqoi2014]数三角形( 组合数 )

    先n++, m++ 显然答案就是C(3, n*m) - m*C(3, n) - n*C(3, m) - cnt. 表示在全部点中选出3个的方案减去不合法的, 同一行/列的不合法方案很好求, 对角线的不 ...

  9. [转]在linux下如何判断是否已经安装某个软件?软件安装在哪个目录

    <1>在linux下如何判断是否已经安装某个软件? ++++++++++++++++++++++++++++++++++++++++++ rpm -qa|grep 软件包 ++++++++ ...

  10. SuperSocket源码解析之会话生命周期

    一 基本概念 会话(Session)是客户端与服务器进行通信的基本单元,也是一个Socket的封装,在http协议中也有Session机制,其主要作用封装一个通信单元socket,负责服务器与客户端消 ...