本文内容

  • Latch 和等待
  • 共享池中的 Latch 争用

 

Latch 和等待


    假设,一个数据块正在被一个会话从磁盘中读如到内存中,请注意,是正在读取中,此时,如果另外一个会话也正需要这个数据块,他该怎么办?

    此时,丈等待这个数据块被读取到内存中,这样就可以只有一个数据块在内存中,不会导致数据的不一致性。那么,正在读取数据块的会话如何能阻止别的会话继续读取这个数据块呢?方法是它需要获得一种像锁一样的资源,以便阻止其他的会话来做相同的事情,这种资源就叫 Latch。Latch 是 Oracle 为了保护内存结构而产生。

    Latch 不会造成阻塞,只会导致等待。导致 Latch 争用而等待的原因很多,内存中很多资源都可能存在争用。最常见的两类 Latch 争用:

  • 共享池中的 Latch 争用
  • 数据缓冲池中的 Latch 争用

 

共享池中的 Latch 争用

创建测试环境

    用 sys 用户登录,查看 Latch 争用情况:
'library cache%';
 
    LATCH# NAME                                                     HASH
---------- -------------------------------------------------- ----------
       278 library cache load lock                            2952162927
 
SQL>

相关文章:

  • 2021-12-08
  • 2021-08-01
  • 2021-07-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-20
  • 2021-09-12
猜你喜欢
  • 2022-12-23
  • 2021-08-14
  • 2022-02-07
  • 2021-05-17
  • 2021-09-15
  • 2022-12-23
相关资源
相似解决方案