latch 是一种轻量级用于保护oracle共享内存结构,用户并发操作一致性的串行化锁定机制,如SGA中,各种数据被反复从磁盘读取到内存中,如果有并发用户做相同的实情,oracle必须使用一种机制来保证数据在读取的时候只能由一个会话来完成,这就是latch,latch不会造成阻塞,只会导致等待,与每个latch相联系的还有一个清楚的过程,当持有latch进程成为死进程时,系统清楚过程就会被调用;系统lock导致用户等待,需要考虑系统的逻辑设计是否有问题,如多用户对主键的删除或者修改,是否有用户使用select...for update这样的语法,外键是否创建索引。 latch争用多半要考虑系统及数据库自身的设计问题,如绑定变量、热块及参数设置是否合理。
spin 比如数据缓存中某个块要被读取,我们会获得这个块的latch,这个过程就叫spin;另外一个进程恰好要修改这个块,它也要spin这个块,此时它必须等待。当前一个进程释放latch才能spin住,然后修改。如果多个进程同时请求的话,他们之间出现竞争,没有一个入队机制,一旦前面进程释放锁定,后面的进程就蜂拥而上,没有一个先来后到的概念。并且这一切都发生非常快,因为latch的特点是快而短暂!
发表评论
-
大数据量转存(抽取、同步)
2012-11-22 01:23 681在大数据量的转存过程中,建议使用分批转存(不要一次转存过来 ... -
Oracle数据库优化要点总结
2012-10-22 10:33 694当oracle出现性能缓慢、 ... -
反向索引之应用
2012-10-19 15:54 752Oracle会自动为表的 ... -
PFILE与SPFILE差异
2012-10-17 11:56 7801.oracle实例启动时,寻找参数文件的顺序为 spf ... -
Oracle 分区简述
2012-10-12 12:01 676oracle8i起开始推出表分区的概念,最初只有范围分区、列表 ... -
Bitmap位图索引"高昂代价"与B-Tree比较
2012-10-10 08:54 671通过以下实验,来验证B ... -
完整的ORACLE的UTL_FILE的资料
2012-10-08 13:58 730转自:http://blog.csdn.net/alex197 ... -
RAID的类别使用(0,1,0+1,5)
2012-10-08 09:02 723raid0: 熟悉RAID 0的人都知道,它的读写速度是最高 ... -
oracle 裸设备使用和注解
2012-09-28 11:37 934看了一篇不错的的关于 ... -
EM无法登陆问题
2012-05-19 22:20 1277解决ORACLE的EM登录 这几 ... -
oracle的冷/热备份
2012-04-29 11:48 726一、 冷备份 冷 ... -
oracle安装、编译、参数配置
2011-06-09 19:23 686一、安装 按照以下标 ... -
Oracle个人笔记(SQL性能)2B
2011-06-09 19:20 6771.两者区别在哪?select trunc(sysdate,' ... -
start with...connect by prior用法
2011-06-09 19:18 645--当需要根据递归关系查询结果集时 start wit ... -
ORA-01157(表空间数据文件损坏需重建时)
2011-06-09 19:08 1020EM控制台报错如下: 处理步骤: 1. 备份该数据 ... -
工作积累(游标、权限、数组)2
2011-06-09 19:04 678--游标 一、显式游标通 ... -
工作积累(表空间、导出方案、触发器)1
2011-06-09 19:01 672--查看表空间、数据文件相关信息 1、查看表空间包含哪些数据 ... -
Oracle个人笔记(系统查询语句)3
2011-06-09 18:55 550查询锁的表的方法:(1 ... -
Oracle个人笔记(SQL性能)2A
2011-06-09 18:54 7031. ...group by (code,name); 性能要 ... -
Oracle个人笔记(基本规则)1
2011-06-09 18:52 6311.GRANT 权限 ON 表名(对象名) TO 用户;2.o ...
相关推荐
Latch SPIN_COUNT 参数(在Oracle 7中称为_LATCH_SPIN_COUNT)用于控制进程在等待Latch时的自旋次数。合理设置该参数可以帮助减少上下文切换开销,提高系统性能。根据系统的具体需求调整该参数是非常重要的。 总之...
【学习动态性能表(11)--v$latch$v$latch_children】主要关注Oracle数据库中的动态性能视图,尤其是关于latch这一关键概念的监控和分析。latch是一种轻量级的锁定机制,用于保护SGA(System Global Area)中的共享...
在Oracle监控视图`V$LATCH`和`V$SESSION_WAIT`中,可以找到与Latch Free相关的详细统计信息,包括但不限于`immediate_misses`、`spin_gets`、`misses`和`sleep`等字段,它们分别记录了会话在获取Latch过程中的不同...
#### `spin_count`、锁竞争与吞吐量的关系 `spin_count`值的调整对锁竞争和系统的整体吞吐量有着重要的影响。如果设置得过低,可能导致更多的上下文切换和更高的CPU使用率;如果设置得过高,则可能增加锁等待的时间...
Oracle数据库性能优化实务中,闩锁(Latch)与闩锁优化是关键的议题。闩锁是一种轻量级的锁机制,用于保护Oracle数据库内部的数据结构,确保并发访问时的一致性和完整性。它们主要分为三类:应用级锁、数据字典锁和...
这种类型的 latch 采用test-and-set的方式获取,如果当前进程无法立即获得 latch,它会在CPU上执行空循环,即SPIN CPU,而不是放弃CPU。这样做是因为上下文切换的开销较大,而 latch 的获取通常非常迅速。如果经过...
LATCH的申请并不通过队列机制,而是通过类似以下的简单流程:尝试获取LATCH,若无法立即获取,则进行自旋等待(SPIN)或睡眠(SLEEP)。 对于大型内存区域,Oracle使用多路复用LATCH(MULTI-LATCH)策略,将大内存...
2. Test-and-Set Spin Latch:这是一种简单的自旋锁,通过单条指令获取或释放,但不适合高并发,并且对缓存和操作系统性能有负面影响。 3. Reader-Writer Latches:读写锁,基于自旋锁实现,设有限制以防止写锁饥饿...
- SQL语句未使用绑定变量,导致频繁解析,进而加剧了与解析SQL相关的latch争用。 - SQL语句执行效率低,扫描大量数据块,增加了对数据块访问的latch竞争。 因此,优化SQL语句、使用绑定变量以及合理设计索引,都...
该Bug是关于数据库中的死锁问题,特别是发生在库缓存(library cache)互斥锁和共享池锁(shared pool latch)之间。这种情况可能导致数据库操作停滞,因为多个数据库会话(session)因等待被占用的资源而无法继续...
在实际操作中,可能需要使用各种工具和技术来监控锁和锁存器的状态,例如Oracle的动态性能视图(V$ views),如V$LOCK和V$LATCH,以识别哪些资源存在频繁的等待,从而进行针对性的优化。此外,还可以通过调整SQL语句...
接下来,可重用旋转等待(Spin Wait)是一种简单的同步原语,它让线程在一个循环中不断检查条件,直到条件满足才停止等待。虽然它可能会导致CPU资源的浪费,但在某些短暂的同步场景下,旋转等待可以避免上下文切换的...
1. 倒计数锁存(Countdown Latch): 倒计数锁存是一种用于同步多个线程的机制,特别是在主线程需要等待一组并发执行的子任务完成后继续执行的场景。它不同于二进制的Mutex和Monitor,因为它允许一个初始计数值,然后...
在Oracle数据库内部,DBA可以通过查询`v$sysstat`视图中与CPU相关的统计项来了解数据库对CPU的使用情况,例如“CPU used by this session”,“OS Userlevel CPU time”和“OS Systemcall CPU time”。如果Oracle...
Contents Overview 1 Lesson 1: Concepts – Locks and Lock Manager 3 Lesson 2: Concepts – Batch and Transaction 31 Lesson 3: Concepts – Locks and Applications 51 Lesson 4: Information Collection and ...