热门标签 | 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



推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • 海马s5近光灯能否直接更换为H7?
    本文主要介绍了海马s5车型的近光灯是否可以直接更换为H7灯泡,并提供了完整的教程下载地址。此外,还详细讲解了DSP功能函数中的数据拷贝、数据填充和浮点数转换为定点数的相关内容。 ... [详细]
  • 在Oracle11g以前版本中的的DataGuard物理备用数据库,可以以只读的方式打开数据库,但此时MediaRecovery利用日志进行数据同步的过 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 单点登录原理及实现方案详解
    本文详细介绍了单点登录的原理及实现方案,其中包括共享Session的方式,以及基于Redis的Session共享方案。同时,还分享了作者在应用环境中所遇到的问题和经验,希望对读者有所帮助。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了在MySQL8.0中如何查看性能并解析SQL执行顺序。首先介绍了查询性能工具的开启方法,然后详细解析了SQL执行顺序中的每个步骤,包括from、on、join、where、group by、having、select distinct、union、order by和limit。同时还介绍了虚拟表的概念和生成过程。通过本文的解析,读者可以更好地理解MySQL8.0中的性能查看和SQL执行顺序。 ... [详细]
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社区 版权所有