【原创】用示例说明索引数据块中出现热块&Latch的场景,并给出解决方案
引言:索引的热块其实和数据块的热块发生的原理大相径庭,也都是因为大量会话一起访问同一个索引块造成的,我们的解决方案有反向索引,分区索引等。我们说任何一种方式都不是完美的,有优点就必然有缺点,我们把包...
【原创】用示例说明表数据中出现热块&Latch的场景,并给出解决方案?
引言:Latch争用就是由于多个会话同一时间访问同一个数据块引起的,这也是我们常说的热块。解决方法:把记录打散到多个数据块中,减少多个会话同一时间频繁访问一个数据块概率,防止由于记录都集中在一个数据块里产...
【原创】说说你是如何理解Oracle数据库中latch和enqueue lock的?
答:这个问题每个人可能有每个人不同的想法,每个人的出发点可能也都不同,我的出发点先从来源找,是什么原因产生了lock&latch。然后再从不同的角度去解释lock&latch的本质。Lock:1.来源于业务也消失于业...
Oracle LOCK内部机制及最佳实践系列(五)给出一个导致死锁的SQL示例
给出一个导致死锁的SQL示例。死锁定义:从广义上讲包括操作系统 应用程序 数据库,如果2个进程(会话)相互持有对方的资源,都一直等待对方释放,这种情况会造成死锁。误解:会话的阻塞可不是死锁,因为其中有一个会...
Oracle LOCK内部机制及最佳实践系列(四)深入分析mode 2-6 的TM锁相互间的互斥关系
深入分析mode 2-6 的TM锁相互间的互斥关系Oracle TM锁的类型锁模式锁描述含义锁定表的SQL0None1Null空,本模式是oracle预留模式2Row Share(RS)又叫(SS)行级共享锁,是限制最少...
Oracle LOCK内部机制及最佳实践系列(三)构想一个使用手工锁定解决一种业务需求的场景
自己构想一个使用手工锁定解决一种业务需求的场景,并给出SQL演示。场景:手工锁定一个表,例如 我们在做一个秘密交易的时候,谈好的价格就不能变了,必须一手交钱一手交货完成交易,为了保证价格安全,我们先把价格...
Oracle LOCK内部机制及最佳实践系列(二)模拟RI锁定导致阻塞的场景,并分析v$lock
模拟RI锁定导致阻塞的场景,并分析v$lock相应的锁定信息,给出SQL演示。LEO1@LEO1> create table a (id int primary key); &...
Oracle LOCK内部机制及最佳实践系列(一)分别模拟insert|update|delete造成阻塞及说明
引言:Oracle 锁在我一开始接触的时候会有一种高深莫测的感觉,就像是遥远的外星人看不见摸不着但是能感觉到,我在实际的工作中就遇到过ORA-00054: resource busy acquire with nowait specified错误不能插入表,当...