latch即为“栓”,其实是和lock(锁)是一个性质的东西,只不过它是针对内存的,如DB_BLOCK_LRU_LATCHES 参数指定数据buffer的栓的数量,锁是针对对象及事务的。另栓的持续时间非常非常短。

解决方案 »

  1.   

    同意楼上的。两个都是用于资源的调度和分配的。latch是用于内存中的。
      

  2.   

    比如几个用户同时访问一个表,这是latch的使用情况是什么样的?
      

  3.   

    latch是维护内存结构的
    对于内部共享数据的访问一样存在着争用和 in/out 的问题主要我们可关注的是  data buffer 里面
    和 shared_pool_size 里面shared_pool_size 如果设置的过大,比如好几百M则可能造成latch过多
    cpu代价过高