共 233 篇文章

标签:Oracle优化

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

本站中文解释 Oracle事件Enqueues同步地将事务中的每个操作(select,update,insert等)与每个资源(数据库对象,数据库表,索引等)关联起来。当一个可能被另一个事务准备更新,但无法满足原先的锁定要求时,该事务将等待锁定(Enqueue),等待原先锁定到资源释放或者超时。 Enqueues TE(Table Enqueue)是Oracle数据库中的一种类型,在系统中,只有在进行更新操作时才会被触发,用来防止不同会话对同一表格提供互相干扰更新操作(如并发更新丢失问题)。 Enqueue TE(Table Enqueue)会查询字段表或者行表,保护它们不被多个会话更新。 Extend Table是一种Oracle Database的一种扩展表的技术,可以帮助我们将已经存在的表扩展,在表中增加新的字段,或者修改已有的字段的数据类型或大小,这种扩展表的方法可以在不需要更改关联数据的情况,在不引入额外延迟的情况下,在表中添加新字段或者修改已有字段的类型和大小。当你需要对表结构进行改变时,你就可以使用Extend Table技术。

技术分享

Oracle 等待事件 undo segment extension 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle 事件 undo segment extension 指的是 Oracle COPY 的过程,使用 COPY 把旧的 undo segment 复制新的 undo segment,并删除旧的 undo segment,从而实现扩充 undo segment。 在 Oracle 数据库中,系统会自动扩充 undo segment,当 undo segment 已用空间接近其最大值时,数据库会隐式调用 COPY 进行扩充 undo segment 。在进行undo segment extension 时,Oracle 会创建新的 undo segment,在新的 undo segment 中复制旧的 undo segment 的有效数据,期间不会影响到基于 undo segment 的事务回滚操作,而会影响其它数据库操作。COPY 会占用 Oracle 进程和系统 I/O 资源,因此 Oracle 建议设置合理的 undo tablespace 大小,定期清理无用的数据,并尽量减少 COPY 次数,以保证数据库操作的正常运行。 undo segment extension 操作在日常维护工作中起到重要作用,能够确保系统满足事务的正确性和数据的完整性,减少因 undo segment 无法扩充而产生的其他问题。此外,适当使用 undo segment extension 操作,还能提升数据库的性能,让其保持稳定。 官方英文解释 The undo segment is being extended or shrunk. The session must wait until the operation on the undo segment has finished. Wait Time: 0.01 seconds Parameter Description segment# The ID of the rollback segment that is being extended or shrunk

技术分享

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

本站中文解释 : ORACLE的TT(Temporary Table)实现机制是一种Enqueues(数据库资源),它们会为每个用户分配一个或者多个带有不可更改的数值的Enqueues,当用户请求使用数据库资源时,数据库会去查看与Enqueues相关的标记。Enqueues担任了一个重要的角色,能够确保用户能够按一定顺序访问数据库,防止出现混乱的情况。 Enqueues作为数据库中的一种特定的资源,它们专门用来控制用户在并发方面的权限,也就是说,当多个用户同时操作一个资源的时候,Enqueues就会发生数据库锁,从而保护资源的完整性,对已经被锁住的资源,其他用户仅能等待。而TT(Temporary Table)正是基于Enqueues实现的,它们用于存储暂时需要的数据,也就是指,只有在数据库锁成功释放之后,这些用户才可以继续执行他们的操作了。 因此,Enqueues就担任了一个重要的角色,可以确保用户能按一定顺序来使用数据库,并且防止出现数据混乱的情况,同时,Enqueues所提供的TT(Temporary Table)也能够帮助用户存放暂时需要的数据,确保在多用户同时操作一个资源的时候,资源质量的完整性。

技术分享

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

本站中文解释 Oracle中的Enqueue(队列)是一种并发控制技术,它可以在多个会话之间共享资源来避免资源冲突,从而保证在多个会话中正确地执行事务。Enqueue有两种类型:CU Enqueue和Bind Enqueue。 1. CU Enqueue: CU Enqueue是用于约束应用程序对某个资源的访问的一种并发控制技术。当多个会话正在对某个资源进行访问时,他们将加入CU Enqueue,有着优先级最高的会话将获得资源,而剩余会话将必须等待,直到有着优先级最高的会话释放资源以便剩下的会话才可以访问资源。CU Enqueue是用于控制应用程序对资源的独占访问,从而保护共享资源,确保一个会话只能对某一资源进行更新操作。 2. Bind Enqueue: Bind Enqueue是用于绑定和控制同一资源的操作的一种并发控制技术。它也有优先级的概念,但是它的优先访问基于次数而非时间。当具有同一资源操作请求的会话较少时,会以抢占式方式进行资源访问。而当具有同一资源操作请求的会话较多时,将按照请求次数的优先级进行访问。Bind Enqueue是用于控制多个会话同时发出的某种请求,从而保护共享资源,确保一个会话只能发出一定比例的某种请求。 总的来说,CU Enqueue是用于控制应用程序对资源的独占访问,而Bind Enqueue是用于控制多个会话同时发出的某种请求。它们两个都可以有效的管理Oracle中的资源,从而确保Oracle中事务的正确执行。

技术分享

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

本站中文解释 Oracle事件inactive transaction branch指的是在用户在管理多个事物时可能会遇到的问题。这种问题的症状是用户在尝试更改数据时,多个事务中的一个或多个线程可能变得不活跃,导致暂停执行或操作失败,这时系统中就出现了inactive transaction branch。 首先我们要了解什么是事务:事务是逻辑上的特定操作,它有一组要操作的数据项,可以通过这组操作来根据ACID属性(原子性,一致性,隔离性,持久性)保证事务的完整性。 而事务中的inactive transaction branch指的是一种特殊的模式,也就是说,有一些事务线程针对某些操作的变更尚未结束。当你尝试更新受影响的数据之前,更新会被拒绝,因为事务可能处于中间状态。 这就是有一个inactive transaction branch出现的原因:数据库内部事务未完成,而新来的数据进入时无法被提交或回滚。此外,Oracle还提供了一个v$locked_object视图来查看哪个对象被锁定,对此对象进行操作前,必须先解锁,才能继续操作。 总之,inactive transaction branch是事务处理出现的特殊情况,在数据库中,当一个事务未能完成,而有新的事务尝试进行时,就会出现inactive transaction branch的情况,这就是Oracle发生inactive transaction branch的原因。如果想要解决这个问题,就要将数据库内部的事务提交或回滚,或者解锁已经被锁定的对象,才能继续进行操作。 官方英文解释 The session waits for a transaction branch that is currently used by another session. Wait Time: 1 second Parameter Description branch# The serial number of the transaction for which the session is waiting waited See “waited”

技术分享

Oracle 等待事件 gc current block lost 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle的gc current block lost(垃圾回收块丢失)事件是由于系统执行某项操作而导致的一种可能出现的事件。当经常发生时,会造成数据库性能下降,且无法解决,所以采取一系列步骤来减少或避免垃圾回收块丢失事件的发生。 首先要明白gc current block lost事件是怎么发生的。一般来说,这个事件是由于Oracle数据库系统中存在大量连续的空块,即运行redo log中存在大量的冗余更新数据,导致大量的空闲空间。接着,当系统尝试在这些空块中进行某种操作时,或者系统尝试在这些块中安排任何操作,块丢失事件将发生。 因此,要想减少或避免垃圾回收块丢失事件的发生,可以采取一系列措施: 1. 减少数据库更新操作:可以调整表的数据访问策略,尽量减少对数据库的频繁更新操作,进而减少冗余的redo log信息。 2. 避免运行大量的长事务:长事务会锁定表,不管多久,所以避免运行大量的长事务,可以减轻此类场景的存在。 3. 经常做表的重新排序:表的重新排序能够让更新操作数据自动排列到一起,如果不重新排序,就很有可能导致发生块丢失。 4. 降低PCTFREE值:PCTFREE值越低,就能够减少块丢失事件的发生率。但也要注意,PCTFREE参数值不宜过低,相应的,PCTUSED值也应该增加,以避免表的过大的膨胀。 以上4点是减少垃圾回收块丢失事件发生的常见措施,一般来说,遵循以上建议,不仅能够减少垃圾回收块丢失事件的发生,还能提升系统整体性能。 官方英文解释 This event indicates that a Cache Fusion current buffer request resulted in a potentially lost block. The request will be re-tried automatically. This is typically caused by unreliable interconnect network protocols, usually when the network is congested and packets are dropped. It can also be the result of interconnect hardware errors or simply the result of an overloaded system, or a sign that a public network path is used for Cache Fusion instead of a private network. Wait Time: The wait time is the actual time it took to detect the potentially lost block. Parameter Description file# See...

技术分享

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

本站中文解释 Oracle事件’Enqueue:FS’指的是’Enqueue: File Set’的简称,是Oracle数据库中的一个逻辑资源,也是一种资源锁定。 ‘Enqueue:FS’的作用是当多个用户请求访问文件集时,让文件集的访问按照预定的次序进行,而不会出现因访问冲突而发生错误的情况。因此,使用Enqueue:FS可以促进Oracle数据库的性能,其目的主要是为了保证数据库事务一致性。 Enqueue: FS本质上是一种读/写互斥锁,它将共享资源(文件集)拆分成独立的“小”单元,以保护其它会话访问它们的状态,以确保它的实际执行的原子性。这种互斥机制保证了当任何一个会话访问共享文件集时,如果另一个会话也同时尝试访问同一文件集,这两个会话将被挂起,直到正在访问该文件集的会话完成操作访问并释放该锁为止。 Enqueue:FS锁还具有另一个共享模式,它被称为反向共享模式。在反向共享模式下,只有当没有会话占有文件集时,某个会话才可以获取该文件集。这种模式有助于防止行级锁衝突,从而提高数据库的性能。 总的来说,’Enqueue:FS’逻辑资源锁定可以帮助Oracle确保数据一致性,并有效地提高数据库的性能,有助于减少行级锁竞争冲突和等待时间。

技术分享

Oracle 等待事件 Redo Transport Close 官方解释,作用,如何使用及优化方法

本站中文解释 Redo Transport Close 事件是Oracle循环应用程序中的一项重要操作。在Redo Transport Close事件期间,可以实现对事务日志数据的安全备份,并支持重做日志数据的异步传输以实现多实例高可用,以应对集群实例中的故障。Redo Transport Close过程中,活动的实例通过NET网络向standby实例发送事务日志数据,将从隔离级别支持下获取的数据更新到传达目标standby实例。standby实例接收传达数据,并将已提交的事务日志数据生效在本地的活动实例中。 在域访问控制器或主机发生故障时,Oracle数据库可以实现快速恢复,而不需要重启实例。这有助于保证Oracle事务的一致性和完整性,通过Redo Transport Close操作将实例的活动日志数据传输到standby实例上可以有效地支持主机或域访问控制器的出现,完成快速恢复,保护数据不让数据受到危害。 关于Redo Transport Close过程中使用的实例,每个实例有其相应的进程。这些实例可以用单独的进程来完成Redo Transport Close操作,也可以用多个进程来完成Redo Transport Close操作;同时,可以使用多个实例来完成Redo Transport Close操作,也可以只使用单个实例来完成Redo Transport Close操作。由于Redo Transport Close操作基于一致性控制,需要从standby实例中释放日志空间以释放其增长,因此还可以利用archivelog模式进行释放空间。 在Redo Transport Close事件期间,Oracle实例还可以利用flash记忆器及使用高级重做服务RFS(Redo File Server),快速同步复制多实例日志文件,实现安全的备份和恢复,进一步提高实例的可用性水平。 总之,Redo Transport Close事件可以大大提高多实例的可用性,保护数据不被危害,使数据一致性和完整性得到最大程度的保证。 官方英文解释 Used to track the time spent (in centiseconds) by ARCn, NSSn, and TTnn processes doing RFSCLOSE and RFSRGSTR operations. See Also: Oracle Data Guard Concepts and Administration for more information about using RFS to manage standby redo logs.

技术分享

Oracle 等待事件 undo_retention publish retry 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle Event Undo_Retention Publish Retry Oracle Event Undo_Retention Publish Retry,也称作Undo_Retention PublishAuto-Retry,是一种会自动发送重试消息以重新推送消息的机制,可以用来解决因网络故障而出现的消息延迟问题。 当ORACLE收到每一条事务消息时,它会作出反应,发布消息然后释放资源。然而,当发布消息过程中发生故障时,将出现严重的性能问题,因为ORACLE无法释放资源。 为了解决上诉问题,Oracle提供了一种叫做Undo_Retention Publish Auto-Retry的特性,它可以自动发出重试消息,重新推送消息以保证消息的及时传送和质量。 当ORACLE在提交事务消息之后收到故障信号时,它会立即将其Undo_Retention Publish Auto-Retry功能。Undo_Retention Publish Auto-Retry将控制回滚时间,自动发送重试消息,并在一定时间后,如果还没有收到确认,将再次发送重试消息,直到最终收到确认消息。 这种自动重试机制不仅可以提升发布消息的成功率,还可以节省企业成本,大大缩短数据发布的时间。它能够有效降低延时事件的发生率,提升ORACLE消息发布的性能。 官方英文解释 This wait can occur for two reasons. A session issuing an ALTER SYSTEM SET UNDO_RETENTION may wait on this event wait while a cluster reconfiguration takes place. Or the background process MMNL may wait for cluster reconfiguration while attempting to determine the max UNDO_RETENTION. Wait time: 1 second Parameter Description P1 Identifies where the retry is happening. Id = 1 retry while publishing into the max undo_retention namespace. Id = 2 retry while iterator accessing the max undo_retention namespace. P2 Retry count (maximum  number of retries is 5)

技术分享

Oracle 等待事件 index split completion 官方解释,作用,如何使用及优化方法

本站中文解释 Oracle事件Index Split Completion是指索引空间在重建引起的分裂操作完成时触发,可以在调用dbms_scheduler.create_job函数注册根据条件来触发index split completion的作业任务。 Index Split Completion的优点是能够让数据库更快地完成在查询引擎中设置的相关操作,比如添加和删除索引、对表进行分区操作等。其核心思想是通过在开放空间中划分索引,使索引空间变得更加紧凑,避免空空间浪费和减少索引空间,以此提高查询引擎的运行效率。 与此同时,Index Split Completion可以改善系统中存储结构的紧凑性,降低存储重建操作后引起的负载。除此之外,通过Index Split Completion可以大大简化系统中的存储和索引的重建操作,减少重建操作所需的时间以提高查询效率。 另外,由于Index Split Completion的方法被应用于了绝大多数的索引更新操作以及建立数据重建,所以其实可以节省大量的空间以及资源,优化索引和数据库的运行性能。 总之,Index Split Completion是Oracle数据库操作所必不可少的技术,可以提升数据库操作的效率,改善查询和索引空间,提高系统性能,可谓是提高Oracle数据库系统效率的利器。 官方英文解释 This event occurs when a transaction inserting a row into an index must wait for the end of an index block split being performed by another transaction. In an Oracle RAC database, some index split waits will use this wait event in lieu of the “enq: TX – index contention” wait event. Wait Time: The wait time is the actual time waited for the split to complete. Parameter Description undo seg# The rollback segment ID slot# The slot ID inside the rollback segment wrap# The sequence number that is incremented for each transaction count The number of times that...

技术分享