热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

oracle查找等待事件,Oracle等待事件以及解决方案

librarycachepin该事件通常是发生在先有会话在运行PLSQL,VIEW,TYPES等object时,又有另外的会话执行重新编译这些object,即先给对象加上了

<10> library cache pin该事件通常是发生在先有会话在运行PL/SQL,VIEW,TYPES等object时,又有另外的会话执行重新编译这些object,即先给对象加上了一个共享锁,然后又给它加排它锁,这样在加排它锁的会话上就会出现这个等待。P1,P2可与x$kglpn和x$kglob表相关X$KGLOB (Kernel Generic Library Cache Manager Object)X$KGLPN (Kernel Generic Library Cache Manager Object Pins)-- 查询X$KGLOB,可找到相关的object,其SQL语句如下(即把V$SESSION_WAIT中的P1raw与X$KGLOB中的KGLHDADR相关连)select kglnaown,kglnaobj from X$KGLOBwhere KGLHDADR &#61;(select p1raw from v$session_waitwhere event&#61;&#39;library cache pin&#39;)-- 查出引起该等待事件的阻塞者的sidselect sid from x$kglpn , v$sessionwhere KGLPNHDL in(select p1raw from v$session_waitwhere wait_time&#61;0 and event like &#39;library cache pin%&#39;)and KGLPNMOD <> 0and v$session.saddr&#61;x$kglpn.kglpnuse-- 查出阻塞者正执行的SQL语句select sid,sql_textfrom v$session, v$sqlareawhere v$session.sql_address&#61;v$sqlarea.addressand sid&#61;这样,就可找到"library cache pin"等待的根源&#xff0c;从而解决由此引起的性能问题。

<11> library cache lock该事件通常是由于执行多个DDL操作导致的,即在library cache object上添加一个排它锁后,

中查找其对应的对象。-- 查询引起该等待事件的阻塞者的sid、会话用户、锁住的对象select b.sid,a.user_name,a.kglnaobjfrom x$kgllk a , v$session bwhere a.kgllkhdl in(select p1raw from v$session_waitwhere wait_time&#61;0 and event &#61; &#39;library cache lock&#39;)and a.kgllkmod <> 0and b.saddr&#61;a.kgllkuse当然也可以直接从v$locked_objects中查看&#xff0c;但没有上面语句直观根据sid可以到v$process中查出pid&#xff0c;然后将其kill或者其它处理。

<12> latch free(等待LATCH FREE)latch 是一种低级排队机制(它们被准确地称为相互排斥机制),用于保护系统全局区域(SGA)中共享内存结构。latch就像是一种快速地被获取和释放的内存锁。latch用于防止共享内存结构被多个用户同时访问。如果latch不可用&#xff0c;就会记录latch释放失败。大多数latch问题都与以下操作相关&#xff1a;不能使用邦定变量(库缓存latch)、重复生成问题(重复分配latch)、缓冲存储器竞争问题(缓冲器存储LRU链)&#xff0c;以及缓冲存储器中的"热"块(缓冲存储器链)。也有一些latch等待与bug(程序错误)有关&#xff0c;如果怀疑是这种情况&#xff0c;可以检查MetaLink上的bug报告。该事件的热点对象可通过以下语句查找&#xff0c;其中&2值是v$session_wait中的P1RAW&#xff0c;x$bh中的字段Hladdr表示该block buffer在哪个cache buffer chain latch上&#xff0c;可以通过v$latch_children定位哪些segment是热点块。&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;select a.hladdr, a.file#, a.dbablk, a.tch, a.obj, b.object_namefrom x$bh a, dba_objects bwhere (a.obj &#61; b.object_id or a.obj &#61; b.data_object_id)and a.hladdr &#61; &2unionselect hladdr, file#, dbablk, tch, obj, nullfrom x$bhwhere obj in(select obj from x$bhwhere hladdr &#61; &2minusselect object_id from dba_objectsminusselect data_object_id from dba_objects)and hladdr &#61; &2order by 4;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;&#61;***Latch 问题及可能解决办法------------------------------* Library Cache and Shared Pool (未绑定变量---绑定变量,调整shared_pool_size)每当执行SQL或PL/SQL存储过程,包,函数和触发器时,这个Latch即被用到.Parse操作中此

又从另一个会话给它添加一个排它锁,这样在第二个会话就会生成等待。可通过到基表x$kgllkLatch也会被频繁使用.* Redo Copy (增大_LOG_SIMULTANEOUS_COPIES参数)重做拷贝Latch用来从PGA向重做日志缓冲区拷贝重做记录.* Redo Allocation (最小化REDO生成,避免不必要提交)此Latch用来分配重做日志缓冲区中的空间,可以用NOLOGGING来减缓竞争.* Row Cache Objects (增大共享池)数据字典竞争.过度parsing.* Cache Buffers Chains (_DB_BLOCK_HASH_BUCKETS应增大或设为质数)"过热"数据块造成了内存缓冲链Latch竞争.* Cache Buffers Lru Chain (调整SQL&#xff0c;设置DB_BLOCK_LRU_LATCHES,或使用多个缓冲区池)扫描全部内存缓冲区块的LRU(最近最少使用)链时要用到内存缓冲区LRU链Latch.太小内存缓冲区、过大&#xfffd;&#xfffd;内存缓冲区吞吐量、过多的内存中进行的排序操作、DBWR速度跟不上工作负载等会引起此Latch竞争。

<13> db file parallel write与DBWR进程相关的等待,一般代表了I/O能力出现了问题.通常与配置的多个DBWR进程或者DBWU的I/O slaves个数有关.当然也可能意味着设备上存在着I/O竞争

<14> db file single write表示在检查点发生时与文件头写操作相关的等待.通常与检查点同步数据文件头时文件号的紊乱有关.

<15> direct path read 和direct path write表示与直接I/O读相关的等待.当直接读数据到PGA内存时,direct path read出现.这种类型的读请求典型地作为:排序IO(为排序不能在内存中完成的时候),并行Slave查询或者预先读请求等.通常这种等待与I/O能力或者I/O竞争有关.

<16> free buffer inspected表示在将数据读入数据调整缓存区的时候等待进程找到足够大的内在空间通常这类等待表示数据调整缓存区偏小.

<17> library cache load lock表示在将对象装载到库高速缓存时出现了等待.这种事件通常代表着发生了负荷尔蒙很重的语句重载或者装载,可能由于SQL语句没有共享或者共享池区域编小造成的.

<18> log file parallel write表示等待LGWR向操作系统请求I/O开始直到完成IO.在触发LGWR写的情况下如3秒、1/3、1MB、DBWR写之前可能发生.这种事件发生通常表示日志文件发生了I/O竞争或者文件所在的驱动器较慢

<19> log file single write表示写日志文件头块时出现了等待.一般都是发生在检查点发生时.

<20> transaction表示发生了一个阻塞回滚操作的等待

<21> undo segment extension表示在等待回滚段的动态扩展.这表示可能事务量过大,同时也意味着可能回滚段的寝大小不是最优,MINEXTENTS设置得偏小.考虑减少事务,或者使用最小区数更大的回滚段.0b1331709591d260c1c78e86d0c51c18.png



推荐阅读
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文节选自《NLTK基础教程——用NLTK和Python库构建机器学习应用》一书的第1章第1.2节,作者Nitin Hardeniya。本文将带领读者快速了解Python的基础知识,为后续的机器学习应用打下坚实的基础。 ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 本文对SQL Server系统进行了基本概述,并深入解析了其核心功能。SQL Server不仅提供了强大的数据存储和管理能力,还支持复杂的查询操作和事务处理。通过MyEclipse、SQL Server和Tomcat的集成开发环境,可以高效地构建银行转账系统。在实现过程中,需要确保表单参数与后台代码中的属性值一致,同时在Servlet中处理用户登录验证,以确保系统的安全性和可靠性。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • DVWA学习笔记系列:深入理解CSRF攻击机制
    DVWA学习笔记系列:深入理解CSRF攻击机制 ... [详细]
  • 深入解析Struts、Spring与Hibernate三大框架的面试要点与技巧 ... [详细]
  • 本文详细介绍了在MySQL中如何高效利用EXPLAIN命令进行查询优化。通过实例解析和步骤说明,文章旨在帮助读者深入理解EXPLAIN命令的工作原理及其在性能调优中的应用,内容通俗易懂且结构清晰,适合各水平的数据库管理员和技术人员参考学习。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
author-avatar
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有