当前位置:  数据库>oracle

Oracle等待事件详细分析

    来源: 互联网  发布时间:2017-05-08

    本文导语: 从今天起,木木同学要认真整理一下Oracle中常见的等待事件,通过这部分的学习,希望自己能对oracle内部的结构能有一个更清晰的认识,有兴趣的童鞋一起来哇。 1、latch:cache buffers chains从oracle 9i开始,以只读为目的的查询chains...

从今天起,木木同学要认真整理一下Oracle中常见的等待事件,通过这部分的学习,希望自己能对oracle内部的结构能有一个更清晰的认识,有兴趣的童鞋一起来哇。

1、latch:cache buffers chains从oracle 9i开始,以只读为目的的查询chains时,可以将cache buffers chains锁存器以shared模式共享,因此有助于减少争用。(我们需要注意,若能共享cache buffer chains 锁存器,理论上理论上不应该发生同时执行select 操作引起cbc锁存器的争用,但实际的测试结果表明,同时执行select依然会发生cbc锁存器争用,其理由是与buffer lock相关:为了读取工作,以shared模式已经获得锁存器,但是读取实际缓冲区过程中,还要以shared 模式获取buffer lock,在此过程真呢过需要部分修改缓冲区头信息。因此在获取buffer lock过程中,需要将cbc锁存器修改为exclusive 模式,在释放buffer lock期间也需要exclusive模式获取cbc锁存器,在此过程中会发生争用。)

发生cache buffers chains 锁存器争用代表性的情况如下:低效的SQL    和     hot block(热块)
低效SQL引起的cbc争用先介绍视图:v$latch_children 数据库中有些类别的latches拥有多个。v$latch中提供了每个类别的总计信息。如果想查看单个latch,可以通过查询本视图:查询数据库中所有latch的名字和个数:SQL> select name,count(*) ct from v$latch_children group by name order by ct desc;

NAME                                                                             CT
----------------------------------------                               ----------
cache buffers chains                                               1024
SQL memory manager workarea list latch           67
channel operations parent latch                            65
global tx hash mapping                                           47
message pool operations parent latch               34
name-service namespace bucket                         32
simulator hash latch                                             32
row cache objects                                                  29
redo allocation                                                        20
In memory undo latch                                           18
checkpoint queue latch                                         16












NAME                                                              CT
----------------------------------------               ----------
msg queue                                                  15
JS queue access latch                             13
commit callback allocation                       11
transaction allocation                              11
buffer pool                                                 8
cursor bind value capture                         8
simulator lru latch                                      8
object queue header operation                8
object queue header heap                        8
cache buffers lru chain                               8
business card                                             8













NAME                                                      CT
----------------------------------------        ----------
shared pool                                             7
flashback copy                                       6
virtual circuit queues                            6
post/wait queue                                    5
slave class                                             5
JS slv state obj latch                            4
redo copy                                                4
session switching                                 4
parallel query alloc buffer                       4
job workq parent latch                            3
undo global data                                  3












    
NAME                                                     CT
---------------------------------------       -----------
library cache pin allocation                      3
library cache pin                                      3
library cache hash chains                   3
peplm                                                     3
library cache lock                                 3
library cache lock allocation                 3
library cache                                           3
Shared B-Tree                                     2
session idle bit                                     2
parallel query stats                              2
longop free list parent                           2













NAME                                                   CT
----------------------------------------       ----------
latch wait list                                        2
ksfv messages                                     2
enqueue hash chains                          2client/application info                           2
channel handle pool latch                    1
granule operation                                 1
logminer context allocation                   1
session queue latch                           1
sim partition latch                                 1
msg queue latch                                   1
done queue latch                                  1












已选择55行。
如此说来,oracle10g中有55个有名字的latch,拥有量最大的就是我们的cbc latch,正好1024个。
我通过构建测试环境,创建了表,加上索引。并且创建一个全表扫描的过程:SQL> create table  cbc_test(id number, name char(100));SQL> insert into cbc_test(id,name) select object_id, object_name from dba_objects;SQL> cretate index cbc_test_idx on cbc_test(id);
好了,下面进行不必要的广泛扫描索引:创建一个过程:create or replace procedure cbc_do_select is
  begin
    for x in(select /*+index(cbc_test cbc_test_idx)*/ *
    from cbc_test where id>=0) loop
     null;
    end loop;
  end;









反复执行此过程2000次:var job_no number;
  begin
   for idx in 1..2000 loop
     dbms_job.submit(:job_no,'cbc_do_select;');
     commit;
   end loop;
 end;





查看一下cbc 锁存器对应的CHILD#,GETS, SLEEPS判断子锁存器上使用的次数和争用是否集中:
select * from
  2   (select child#,name,gets,sleeps from v$latch_children
  3     where name='cache buffers chains'
  4     order by sleeps desc
  5    )where rownum select * from
  2   (select latch#,child#,addr,gets,sleeps from v$latch_children
  3     where name='cache buffers chains'
  4     order by sleeps desc
  5    )where rownum select hladdr,obj,(select object_name from dba_objects
  2            where (data_object_id is null and object_id=x.obj)
  3            or data_object_id=x.obj
  4            and rownum=1 )as object_name,dbarfil,dbablk,tch
  5            from x$bh x
  6          where hladdr in('6CB7F7F0','6CFFF70C')
  7      order by hladdr,obj;









HLADDR          OBJ             OBJECT_NAME      DBARFIL     DBABLK        TCH
--------                ----------          -------------              ----------       ----------          ----------
6CB7F7F0         18                 OBJ$                          1             47810          0
6CB7F7F0        109              I_SYSAUTH1             1               827            15
6CB7F7F0      57855           CBC_TEST                1             58171           0
6CB7F7F0      57855           CBC_TEST               1              58655           0
6CFFF70C          2                ICOL$                         1             42272          17
6CFFF70C         18              OBJ$                           1              47811           0
6CFFF70C        109             I_SYSAUTH1             1             828               15
6CFFF70C      57855           CBC_TEST               1             58172           0
6CFFF70C      57855           CBC_TEST               1             58656           0










但是很不幸,我这里也没有出现热块的迹象,因为tch竟然都是0.我也不知咋回事。。


    
 
 

您可能感兴趣的文章:

  • Oracle与JSDK4.0环境变量冲突,如何解决(在线等待)?
  • 请问,我如何在unix下用c/c++连结数据(oracle)??在线等待!!!!
  • 在线等待:用子线程与ORACLE数据库建立连接的问题。
  • ORACLE安装问题,再线等待!!!
  • 寻求在Linux 8.0上安装Oracle 9i的安装文档,分不够,可以再加,在线等待。。。
  • solaris9下怎么查看oracle服务是否启动,以及怎么启动,在线等待。
  • 急!!!linux9下安装oracle9i在configuration Tool过程出现错误,在线等待,解决立即给分!
  • RedHat AS 4 安装oracle9i的时候,执行Disk1下的runInstaller后提示正在初始化虚拟机,请等待后就再无反应
  • 取Oracle数据库中的中文数据乱码的问题!!急:在线等待
  • jsp显示oracle中varchar2类型字段 在线等待
  • 请教:如何在java程序里直接执行Oracle的sql脚本,谢谢先!在线等待,有参考意见即可加分。
  • jsp连接oracle问题,再现等待,解决马上给分!
  • 请问在jsp中将系统当前时间插入到Oracle中Date字段中?(很急,在线等待)
  • jsp连接oracle的简单问题,在线等待,马上接贴!
  • 为什么我用javabean更新不了数据库?javabean,oracle高手请进!!!!!高分相赠!!!在线等待中。。。
  • 快速查出Oracle数据库中锁等待的方法
  • oracle 常见等待事件及处理方法
  • Oracle中常见的33个等待事件小结
  • 详析Oracle跟踪事件:set events
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Oracle中关数据库对象的统计分析
  • 深入oracle特定信息排序的分析
  • 操作系统 iis7站长之家
  • Oracle移动数据文件到新分区步骤分析
  • 基于oracle小数点前零丢失的问题分析
  • Oracle date如何比较大小分析
  • Linux上建立第二个ORACLE实例分析
  • Oracle 数据库容灾复制解决方案分析Shar Plex
  • 计算机名称修改后Oracle不能正常启动问题分析及解决
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • linux as3 _weblogic8_oracle系统访问50万/日,常常ping不通,分析原因
  • Oracle数据库安全策略分析 (三)第1/2页
  • Oracle数据库安全策略分析(一)第1/2页
  • Oracle数据完整性嵌套事务调用分析研究
  • Oracle In和exists not in和not exists的比较分析
  • oracle修改SGA后无法启动问题分析及解决方法
  • Oracle案例:分析10053跟踪文件
  • Oracle数据库安全策略分析(二)
  • Oracle 9i中自动撤销管理的优点分析
  • Oracle数据库后台进程的功能分析
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,