latch和等待浅析.ppt

上海新炬 2014年9月 Latch和等待 思考一下这样的情景,“一个数据块正在被一个会话从磁盘中读入到内存中,请注意是正在读取,此时另外一个会话也正需要这个数据块,它该 怎么做呢”。 Latch和等待 其实结果不难猜测,我们需要等待这个数据块被读取到内存中,这样就可以只有一个数据块在内存中,不会导致数据的不一致性。那么正在读取数据块的会话如何能够阻止别的会话继续读取这个数据块呢?方法是它需要获得一种像锁一样的资源以便于阻止其他的会话来做相同的事情,这种资源,在oracle数据库中称为 Latch。 Latch大概就是这样的东西,它是oracle为了保护内存结构而发明出的一种资源,可以把Latch理解为一种轻量级的锁,它不会造成阻塞,只会导致等待。 Latch和等待 在一台多CPU 的机器上,如果Latch不能立即获得,那么会话就会自旋,即在循环中反复地尝试来或得Latch。 Latch和等待 可以知道,当尝试获得Latch的时候,可能会消耗大量的CPU时间。系统看上去很忙,但并没有做多少实际工作。 Latch和等待 导致Latch争用而等待的原因非常多,内存中很多资源都可能存在着争用。下面介绍两类最常见的Latch争用: 共享池中的Latch争用 Latch: shared pool Latch:

文档评论(0)

1亿VIP精品文档

相关文档