首页 > 数据库 >常见等待事件oracle

常见等待事件oracle

时间:2023-10-12 22:33:22浏览次数:32  
标签:cache 读取 产生 数据库 常见 事件 oracle 等待

概念描述

在Oracle数据库中,等待事件是指在数据库操作过程中,进程因等待某些资源或条件而产生的等待状态。例如,当一个进程正在等待某种工作,或正在诊断和优化数据库时,就会出现等待事件。

具体来说,当一个Oracle进程连接到数据库后,它将会经历一系列的等待事件,这些等待事件可以被分类为空闲等待事件和非空闲等待事件。

空闲等待事件指的是进程在等待某种工作发生,例如等待其他进程完成或等待用户输入等。这些等待事件通常不需要过多关注,除非在诊断和优化数据库时需要排除这些等待事件。

非空闲等待事件则是指向数据库任务或应用运行过程中发生的等待,例如等待数据读取或写入磁盘、等待锁等。这些等待事件是诊断优化性能问题时必须关注的事件,因为它们可能会导致数据库性能下降,甚至会导致数据库崩溃。

在Oracle 8i版本之前,等待事件主要通过诊断视图V$EVENT_NAME来查看相关信息。对于每一个等待事件,都有其独特的含义和处置方法,在数据库发生隐患或问题时就可以去特定的科室看病或安排联合会诊。

知识总结

  • Buffer Busy Waits:当多个进程视图以不兼容的模式获取buffer pin时,如果发生争用,就会产生Cache Buffer Chains等待事件。原因可能是存在逻辑读过高的SQL,或者热点数据块被频繁读取或修改。
  • Control File Parallel Write:这是由于同步将信息写入各个控制文件,这是一个并行的物理操作过程。产生等待的原因可能是日志切换太过频繁,或者IO存在争用。
  • Control File Sequential Read:当需要读取控制文件的信息时,如果发生RAC环境下的控制文件共享,就会产生等待事件。
  • Dbfile Parallel Read:当数据块从数据文件并行读取到内存中时,如果发生数据库恢复或缓存预读取,就会产生该等待事件。
  • Free Buffer Waits:这个等待事件通常发生在数据缓冲池有空闲空间时,但是脏数据太多,DBWR无法及时将这些脏数据写到磁盘中以释放空间。
  • Free Buffer Wait:当数据缓冲池有空闲空间时,如果脏数据太多,DBWR无法及时将这些脏数据写到磁盘中以释放空间,就会产生此等待事件。
  • Library Cache Lock:当执行诸如ALTER TABLE或者ALTER PACKAGE/PROCEDURE等操作时,会以X模式持有Library Cache Lock,从而产生堵塞。其原因可能是错误的用户名密码、正在执行收集统计信息等。
  • Library Cache Pin:管理Library Cache并发访问时会产生该等待事件。
  • Cache Buffer Chains:当多个进程视图以不兼容的模式获取buffer pin时,如果发生争用,就会产生此等待事件。
  • Control File Parallel Write:这是由于同步将信息写入各个控制文件,这是一个并行的物理操作过程。产生此等待事件的原因可能是日志切换太过频繁,或者IO存在争用。
  • Control File Sequential Read:当需要读取控制文件的信息时,如果发生RAC环境下的控制文件共享,就会产生此等待事件。
  • DB File Parallel Read:当数据块从数据文件并行读取到内存中时,如果发生数据库恢复或缓存预读取,就会产生此等待事件。
  • DBWR:当DBWR将脏块从buffer cache写到数据文件中时,如果发生等待事件。
  • Resource SPIN:当数据库尝试获取锁但被锁住时会出现资源spin等待事件。
  • Non-blocking read/write:当数据库尝试获取一个非阻塞读/写锁失败时会出现这个等待事件。
  • free buffer waits:当数据库在将数据块从磁盘读入内存或将脏数据块写回磁盘的过程中,如果内存中的数据块不够用,就会产生这种等待事件。
  • library cache lock:当执行某些特定的数据库操作,如ALTER TABLE或ALTER PACKAGE等,需要获取library cache lock但无法获取时,会产生这种等待事件。
  • library cache pin:当多个进程同时访问library cache并请求修改其中的内容时,会产生这种等待事件。
  • cache buffer chains:当多个进程同时读取或修改相同的内存数据块时,会产生这种等待事件。
  • control file parallel write:当多个控制文件被同时写入时,可能会产生这种等待事件。
  • control file sequential read:当需要读取控制文件的信息时,如果发生RAC环境下的控制文件共享,会产生这种等待事件。
  • db file parallel read:当数据库需要从多个数据文件中并行读取数据块以进行缓存预读取或数据库恢复时,会产生这种等待事件。
  • db file parallel write:当多个进程同时将脏数据块从内存写入数据文件时,会产生这种等待事件。

标签:cache,读取,产生,数据库,常见,事件,oracle,等待
From: https://blog.51cto.com/u_13482808/7835792

相关文章

  • 更改 ORACLE 用户的 expired 状态
    问题概述oracle中,经常用户的状态会变成locked,expired等状态,遇到这种情况,按照具体环境进行操作。首先,如果是locked状态,直接执行alteruserscottaccountunlock就可以了。但是如果变成expired状态,oracle本身是不提供解锁的语句的,因为账户过期,必须要用户更改密码,账户才能重新使用......
  • Oracle数据库迁移注意事项
    本文基于使用数据泵(datapump)迁移数据库时,特别需要注意的几点。1.sys下别其他用户调用的package,procedure等-场景:大型数据库中,都会有自定义的表分区管理procedure2.tnsnames.ora、listener.ora、sqlnet.ora的信息-场景:有些场景可能会使用oraclewallet,因......
  • docker入门加实战—docker常见命令
    docker入门加实战—docker常见命令在介绍命令之前,先用一副图形象的展示一下docker的命令:常见命令docker的常见命令和文档地址如下表:命令说明文档地址dockerpull拉取镜像dockerpulldockerpush推送镜像到DockerRegistrydockerpushdockerimages查看本......
  • Oracle 替换回车和换行
      --替换回车和换行updatedc_group_parametertsett.description=replace(replace(t.description,chr(10),''),chr(13),'')wheret.description<>replace(replace(t.description,chr(10),''),chr(13),'');--替换双引号......
  • Allegro中常见的文件格式
    .brd工具:PCBDesignExpert  PCB布线.ddb      工具:Protel.art 工具:CAM350 AllegroPCBDesignfile/impotARTwork.d     工具:pads2005.drl    工具:Protel.opj    设计项目工程.olb    创建新的元件库  CadenceSPB15.5整个软件......
  • Oracle Connect BY用法
     selectlevel fromdualconnectbylevel<=10;上例均可查询得到1..N的序列。SELECTA.*,REGEXP_SUBSTR(A.MATERIAL_ID,'[^,]+',1,LVL,'C')MATERIAL_NO--,REGEXP_COUNT(A.MATERIAL_ID,',')+1CNTFROMDWT_INPUT_LOTA,(SELECTLEVELLV......
  • 内网环境中获取域控权限的常见方法
    内网协议NTLM-CVE-2019-1040利用1-exchange​通过printerbug使exchange机器向攻击机发送认证回连攻击者的机器,再使用ntlmrelayx--remove-mic参数绕过NTLMMIC校验,将smb中继到LDAP进行身份认证。​打印机的spoolsv.exe服务允许用户远程调用,当用户向RemoteFindFirstPrinterChan......
  • Oracle数据库导入、导出详解
    Oracle11g数据库导入导出方式传统方式【exp(导出)和(imp)导入】数据泵方式【expdp导出和(impdp)导入】第三方工具【PL/sqlDevelpoer】一、什么是数据库导入导出?Oracle11g数据库的导入/导出,就是我们通常所说的Oracle数据的还原/备份。 数据库导入:把.dmp格式文件从本地导入到......
  • html 页面等待效果
    <divclass="loading"><span></span><span></span><span></span><span></span><span></span></div>css.loading{width:80......
  • C# +.Net +Oracle的医院化验室LIS系统源码
    LIS系统源码技术细节:Ø体系结构:Client/Server架构SaaS模式Ø客户端:WPF+WindowsFormsØ服务端:C#+.NetØ数据库:OracleØ接口技术:RESTfulAPI+Http+WCFLIS检验系统一种专门用于医院化验室的计算机系统,它致力于提高医院化验室的工作效率和检测准确率。LIS系统由多个子系统组......