共 233 篇文章

标签:Oracle优化 第20页

Oracle 等待事件 buffer busy waits 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle的buffer busy waits事件是指当引入被频繁访问的资源,而又没有足够的缓冲器可以存储所有的资源时会发生的一种等待。当每次访问被命中的缓冲区时,会发生buffer busy waits事件。 这是一种比较常见的事件,当应用程序执行表、索引或者其他的资源操作的时候都有可能发生buffer busy waits事件,此时系统就有可能进入缓冲区忙等待状态。 此类事件一般会发生在某些SQL语句或者存储过程中,比如当添加记录或修改记录时,若要从缓冲区中访问资源;当发生多个事务读取/写入一个缓冲区时,此时也有可能发生buffer busy waits事件;另外,当其他会话读取/更新表、索引时,也有可能发生缓冲区忙等待状态。 buffer busy waits事件一般发生的原因有:其他会话正在读取/更新记录,而没有空的缓冲区来存储;也有可能是缓冲区有多次拷贝会导致发生多个buffer busy waits事件,因为这时系统需要在缓存中拷贝文件;另外,由于长时间读/写某一块缓冲区而且多个读/写操作没有均衡,也可能导致buffer busy waits事件发生。 要解决buffer busy waits事件,首先可以通过增加buffer size来解决;另外可以重新定义表的索引和用正确的索引结构来减少buffer busy waits事件;也可以使用另一种存储表结构来减少对缓冲区的读写;另外,可以尽量减少事务的数量,减少对缓冲区的访问量。 总之,buffer busy waits事件是比较常见的一种事件,虽然它不会导致数据库系统崩溃,但可能会降低系统的性能。因此,我们要采取一些有效的措施来减少buffer busy waits事件,以确保系统可以正常运行。 官方英文解释 Wait until a buffer becomes available. There are four reasons that a session cannot pin a buffer in the buffer cache, and a separate wait event exists for each reason: “buffer busy waits”: A session cannot pin the buffer in the buffer cache because another session has the buffer pinned. “read by other session”: A session cannot pin the buffer in the buffer cache because another session is reading the buffer from disk. “gc buffer busy acquire”: A session cannot pin the buffer in the buffer cache because another...

技术分享

Oracle 等待事件 flashback buf free by RVWR 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle 数据库中 flashback buf free by RVWR 事件是在执行RVWR进程的恢复操作时,用来释放由已提交的redo缓冲区产生的回滚队列中的空闲缓冲区。 RVWR(Recovery Writer)进程由 Oracle 数据库实例自动启动,主要用于执行数据库恢复操作,在物理恢复数据库时,RVWR将redo信息写入重做日志文件中。此进程还会检查redo缓冲区中的数据,如果重做日志中有相同类型的记录,它会将这些记录从redo缓冲区中删除。当RVWR删除redo缓冲区中的空闲缓冲区时,就会触发 flashback buf free by RVWR 事件。 该事件的发生,很大程度上可以提高RVWR进程的处理效率,节省大量的内存空间,这也可以减少redo维护任务的CPU开销。 但是,在执行该事件时应尽量避免使用过大的内存,因为大量的空闲缓冲区释放可能会影响RVWR处理效率,从而降低数据库性能。因此,应根据实际情况适当调整配置,使 Oracle 数据库系统运行良好。 官方英文解释 This wait event only occurs when Flashback Database is turned on. A session waits for recovery writer (RVWR) to write flashback data to the flashback logs on disk because the buffers are full. Until RVWR can free up the buffers, the session may need to wait. If this event becomes a top wait event for the database, it is typically because the file system or storage system for the Fast Recovery Area does not support enough bandwidth for Oracle to write the flashback database logs. Refer to the Flashback Database section in Oracle Database Backup and...

技术分享

Oracle 等待事件 inactive session 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle实例中,inactive session就是执行一段时间未响应的会话连接。通常来讲,当一个新的会话连接被建立连接到数据库后, 他会一直处于活动状态,但随着时间的流逝会该会话可能因为各种原因变成inactive会话。一个inactive session是指连接至Oracle后,应用不再有请求发送至数据库服务端,因此该会话处于连接状态但无任何活动状态。 inactive session可能是由于连接成功后无发送SQL操作或数据库繁忙导致应用发送操作被排队,一般在应用发送SQL操作耗时较长时, 后续SQL操作请求至Oracle可能已超时,这种就会导致一段时间内无发送操作的session处于inactive状态,操作系统层面的连接会一直保持。 因为inactive的session会一直占用系统连接资源,所以需要管理员进行一定的管理来来保持良好的性能,用法包括:1.定时清理僵死或者很长时间没有动作的session,以防止连接数过多耗尽;2.修改参数‘inactive session timeout’来设定inactive session多长时间后被置为无效;3.使用相关内置功能或功能来查找并踢掉处于inactive状态的session。 总的来说,inactive session是指虽然建立连接但没有任何活动的session,可能由于应用发送受阻或者繁忙导致inactive,去除inactive session是为了节约连接的资源,提高系统性能。可以采取如上所述措施来清理并管理inactive session. 官方英文解释 This event is used for switching and killing sessions. Switching sessions If a timeout period has been specified, then wait that amount of time for the session to be detached. Killing sessions From either KILL SESSION or internal request. Having posted a session that it should kill itself, wait for up to 1 minute for the session to terminate. Wait Time: 1 second Parameter Description session# See “session#” waited See “waited”

技术分享

Oracle 等待事件 latch free 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle事件latch free定义为:当多个进程竞争一只latch 2次,而第2次的竞争者失败时,在 Statspack 或ASH报告中可以看到的Oracle事件名称。当数据库发生IO瓶颈,并且出现这类事件时,就可以查看latch free对Oracle性能的影响。 latch free 是一种 Oracle 的内部技术,是用于提升性能的一种需要得到保护的数据结构。通俗讲,在有多个几秒之间,用来竞争访问相同的资源的多个进程中,如果短时间内无法访问此特定资源,则会发生latch free事件。 由于Oracle数据库中大量组件都是由不同的进程驱动的,每一个进程都可以同时访问资源,并产生latch free的。而我们的目的是保护共有的资源,因此在资源访问时,可能会出现竞争的情况。 在竞争时,如果第二个进程竞争失败,则表示该进程无法获取资源,这就引发了latch free事件。 当第二个进程失败后,Oracle会记录此事件。在 Statspack 报表或 Ash 报表中,可以查看到这类活动数据,以研究当前活动与未来计划之间的关系。 当我们出现latch free事件时,可以明显感觉性能是不够理想的,我们需要找出问题的源头,可以通过观察Latch Free事件的跟踪文件,分析做更进一步的检查。 总之,Latch Free是一个用来检测Oracle数据库中针对不同进程之间对资源的竞争的事件,可以检测数据库的性能瓶颈,并可以用来优化性能。 官方英文解释 The process waits for a latch that is currently busy (held by another process). Wait Time: The wait time increases exponentially and does not include spinning on the latch (active waiting). The maximum wait time also depends on the number of latches that the process is holding. There is an incremental wait of up to 2 seconds. Parameter Description address The address of the latch for which the process is waiting number The latch number that indexes in the V$LATCHNAME view.To find more information on the latch, use the following SQL statement:...

技术分享

Oracle 等待事件 log file switch (private strand flush incomplete) 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle事件log file switch(私有线程刷新不完整)是Oracle数据库中的一个重要事件,该事件可以提高Oracle数据库的性能和可用性。 log file switch事件可以帮助数据恢复在一个故障出现时的数据,以及支持上述故障的快速恢复。这是由于记录块中的事务日志状态被保存在磁盘中,当数据恢复执行时,由于执行了log file switch事件,double write buffer就会产生足够多的副本,以支持快速恢复。 此外,log file switch事件还可以有助于数据库的性能,因为它可以减少用于将数据放入数据文件的时间。此类活动都要发生带动负荷,如果这是计划中的事件,即使每天只执行一次,也可以降低负载,从而提高数据库性能。 log file switch事件还可以帮助提高可用性,因为它可以减少活动时间,以及工作队列中的活动任务数量。 log file switch事件可以切换到一个新的日志文件,这样就可以减少与该文件相关的活动时间,从而减少工作队列中的任务数量。 此外,log file switch事件还可以帮助减轻对磁盘资源的使用,因为它通过私有线程进行刷新和更新操作,从而避免不必要的网络和I / O开销,可以改善线程之间的同步性。 总之,log file switch(私有线程刷新不完整)是Oracle数据库中一个非常重要的事件。它可以提高备份数据的可用性,支持数据恢复,减少对磁盘资源的使用,并提高数据库性能。通过使用Log File Switch事件,可以保证数据的安全和正确性,以及数据库的性能和可用性。 官方英文解释 User sessions trying to generate redo, wait on this event when LGWR waits for DBWR to complete flushing redo from IMU buffers into the log buffer; when DBWR is complete LGWR can then finish writing the current log, and then switch log files. Wait Time: 1 second Parameters: None

技术分享

Oracle 等待事件 scginq AST call 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle 事件 SCGINQ AST CALL 是在 Oracle 开源运行环境中提供的一种事件。它是由 Oracle 数据库引擎(DBE)提前处理当使用者发出数据库查询请求后生成的一个事件。当查询发出到服务端之前,DBE需要经过一定程序处理,可能时将SQL解析到SGA或者共享池,也可能是优化SQL或者做许多其它的事,在此之前会生成SCGINQ AST CALL事件来保证数据库的正确处理并执行查询。 SCGINQ AST CALL事件的主要作用是发出查询请求之前的必要步骤,以便确保数据库解析SQL正确,从而获得准确结果。Oracle 数据库服务器使用AST(Access Structured Trees)机制来保存查询,并在查询发出之前先行调用SCGINQ AST CALL 事件,对 SQL 进行对象查询,确保查询成功。SCGINQ AST CALL事件的调用仅限于Oracle数据库,并且这种事件是在解析SQL语句时出现的,发生时Oracle服务器会把要查询的SQL语句解析成一个Access Structured Tree,并将这个AST放入SQL的缓存区以备后用。当SQL语句从缓存中取出时,会调用SCGINQ AST CALL事件来确保数据正确性和有效性,这样就可以避免出现SQL错误。 总而言之,SCGINQ AST CALL事件是Oracle查询之前必须要调用的事件,它保证Oracle数据库服务器之前处理SQL时准确无误地执行查询,从而为用户提供准确结果。它是一种重要的诊断工具,可以通过发出查询之前先行调用SCGINQ AST CALL事件来监视数据库性能,并避免发生SQL错误。 官方英文解释 Called by the session to find the highest lock mode that is held on a resource. Wait Time: Wait up to 0.2 seconds, but the wait will continue until the NULL mode Acquisition AST has fired. Parameters: None

技术分享

Oracle 等待事件 resmgr:become active 官方解释,作用,如何使用及优化方法

本站中文解释 oracle事件resmgr:become active 是Oracle数据库中的一个事件,如果该事件被配置了基准,则服务器的记录启动活动的进程数量是一个指标。 Resmgr:Become Active事件是指在Oracle服务器上启动多个活动进程(或者说会话)的情况,单次会话可以包括多个连接任务,根据资源管理器(Resource Manager)提供的额外控制来进行调度,从而最大程度地提升数据库资源的利用率,提高工作效率。 事件Resmgr:Become Active需要一个以上参数配置,以确保基准在合理范围内实现: 1、硬件资源:如CPU,可用内存,磁盘访问速度等; 2、其他参数:如缓存大小,网络带宽等; 3、软件资源:如操作系统,数据库版本,Oracle模块的版本; 4、数据库特性:如数据库表空间,数据库传输等; 5、安全设置:如安全模块,密码强度等; 6、实例设置:如高速缓存配置,多操作系统等; 7、监控报警策略:如何监控事件,什么情况下报警等。 通过配置以上参数,可以有效地优化和提高服务器上活动进程的数量,从而提升数据库系统的性能。此外,可以在Resmgr:Become Active事件发生之前设置监控和报警,以便及时的跟踪系统状态,确保系统性能达到预期要求。 官方英文解释 The session is waiting for a resource manager active session slot. This event occurs when the resource manager is enabled and the number of active sessions in the session’s current consumer group exceeds the current resource plan’s active session limit for the consumer group. To reduce the occurrence of this wait event, increase the active session limit for the session’s current consumer group. Wait Time: The time the session waited to be allocated an active session slot Parameter Description location location of the wait

技术分享

Oracle 等待事件 Enqueues:SQ,SequenceNumberEnqueue 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle事务Enqueues SQ:序列号Enqueue是一种重要的事务管理机制,它旨在确保数据库事务以及在数据库中进行操作之间的原子性和有序性。在Oracle中,这种机制通常被称为enqueues DB lock或共享资源管理(SRM)。 SQ(Sequence Number)Enqueue是一种特定类型的Enqueue,它能够有效地帮助改善性能,同时提供了对数据一致性的保证,避免死锁,共享锁和次序锁可用于确保事务的原子性,有序性和严格的同步。 Enqueue的核心是共享锁,它在表上获取被保护的实体,例如行,表,序列等。一个事务可以在仅保存共享性共享锁的情况下访问表中的行,从而实现多个事务对数据的可见性以及它们以有序的方式访问同一表的功能。 排他锁则用于允许一个给定的事务独占表中的行,该事务可以独自处理数据。当给定的事务完成其工作时,它会释放锁,使其他事务能够进行操作。当多个事务试图在同一时间访问表中的相同行时,只有一个事务会获取排它锁,另一个事务将被拒绝,这被称为死锁。 SQ Enqueue有助于减少死锁问题,它能够明确控制并行事务之间的顺序。此外,它允许系统同时运行多个事务,而任何一个事务都不会对另一个事务造成损害。 有效使用Enqueues SQ(序列号Enqueue)可以增加数据库性能,同时避免危险情况的产生。总的来说,Enqueues SQ(序列号Enqueue)是数据库中十分重要的机制,它可以有效地改善性能,保证数据的一致性,防止死锁冲突以及避免不一致的访问序列。

技术分享

Oracle 等待事件 BFILE get length 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle 事件BFILE get length 是一个内置的事件,可以用于检测LOB 文件大小。其中LOB即大型对象,通常指行和列存储的字符串或二进制字符串,如XML文件、文本文件、图片和视频,它们可以单独存储和管理,可以存放所有数据库平台,从而提高了存储空间的使用效率。 Oracle 事件BFILE get length 使用如下: 1、 利用DBMS_LOB.GETLENGTH 函数,可以获取一个LOB字段文件的长度; 2、 可以通过视图V$EVENT_NAME 查询出有关BFILE getlength事件的信息; 3、 可以使用PL/SQL Dbms_monitor.NEW_SESSION() 和 Dbms_monitor.session_trace_enable() 函数来监控这个Dbms_lob.get_length事件; 4、 Dbms_xplaintune 包提供在我们分析BFILE get length 的过程中优化数据库性能的一系列功能,例如查看操作BFILE get length请求带来的潜在内存和CPU占用。 通过封装工具,用户可以轻松地检测和分析LOB字段文件的大小情况。在给出来的建议下,用户可以采取相应的措施来改善和优化数据库性能。 官方英文解释 The session waits on a call to check the size of an external large object (LOB). Wait Time: The total elapsed time for the call to check the LOB size Parameter Description session# See “session#” waited See “waited”

技术分享

Oracle 等待事件 enq: OW – termination 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle的enq:OW – termination事件是一个表锁的类型,用于在Oracle数据库中管理终止操作的表锁模式。它是多个数据库用户可以共享的表锁模式。这种表锁的作用是防止其它用户在终止操作期间进入表中的行,而这些行可能被终止操作修改或删除。 当终止操作使用OW(持有终止)锁定一个表之后,其他用户可以访问该表,但他们不能对表中的行进行任何更改,直到终止操作完成,OW锁定被释放为止。 OW锁定仅发生在使用UPDATE、DELETE和MERGE完成终止操作的情况下。 OW锁定有助于预防孤立的行在表上失败,因为一些数据可能会以一种不可见的形式被终止操作操作了修改或删除,这就是所谓的“不可见变更”。 如果在OW锁定过程中发生了不可见变更,这意味着终止操作完成时可能会出现缺少行,或者表中的剩余行可能已经成功被修改或删除。 OW锁定也可以用于阻止由于并发访问而可能发生的不一致性,因为在“持有终止”锁定期间,其它用户不能在表中的行上执行更改操作。此外,OW锁定也帮助避免因更改丢失而导致的执行故障,因为表中的行被终止操作所修改或删除之前,更改被记录下来。 一般而言,如果一个表被一个OW enq:终止锁定,那么该表中的其他用户都不能执行任何修改或删除操作,包括SELECT语句。 OW锁定可以明显减少应用程序中因更改丢失和并发访问问题导致的故障,且有助于确保该表中的更改在终止操作完成之前仍然是有效的。 官方英文解释 A session will wait on this event if it is trying to terminate the database wallet, and another session has already begun a termination. Wait Time: Total time necessary to deallocate memory used by the wallet context and terminate the context. Parameters: None See Also: Oracle Database Performance Tuning Guide for more information about the potential causes of an enqueue wait event

技术分享